HostAfrica API (2.0.0)

Authentication

oauth2
OAuth2 Authentication

Security Scheme Type OAuth2
clientCredentials OAuth Flow access - Access Control
products - Products Control
service - Service Control











Access Control

Test Connection

POST /api/v2/test-connection


AUTHORIZATIONS:     oauth2 (access)

REQUEST HEADERS:

Key Value
Content-Type application/json
Accept application/json
Authorization Bearer {YOUR_ACCESS_TOKEN}

REQUEST BODY:

Parameter Type Description Required

Success Response:

{
 "status": "Success",
 "message": "Connection established successfully.",
 "data": []
}

Error Response:

{
 "status": "Error",
 "message": "Error Message",
 "data": []
}

API Version

GET /api/v2/version


AUTHORIZATIONS:     oauth2 (access)

REQUEST HEADERS:

Key Value
Content-Type application/json
Accept application/json
Authorization Bearer {YOUR_ACCESS_TOKEN}

REQUEST BODY:

Parameter Type Description Required

Success Response:

{
 "status": "Success",
 "message": "",
 "data": {
  "version": "2.0.0"
 }
}

Error Response:

{
 "status": "Error",
 "message": "Error Message",
 "data": []
}

Product Control

List Products

GET /api/v2/products


AUTHORIZATIONS:     oauth2 (products)

REQUEST HEADERS:

Key Value
Content-Type application/json
Accept application/json
Authorization Bearer {YOUR_ACCESS_TOKEN}

REQUEST BODY:

Parameter Type Description Required

Success Response:

{
 "status": "Success",
 "message": "",
 "data": [
  {
   "id": "e61270e7-695b-4b85-9ba6-1895b9d26fbb",
   "name": "Cloud Server",
   "id": "template": "linux",
   "config": {
    ram": {
     "min": "1",
     "max": "64",
     "unit": "GB",
    },
    ip": {
     "min": "1",
     "max": "1",
     "unit": "IP",
    },
    cpu": {
     "min": "1",
     "max": "8",
     "unit": "vCore",
    },
    hdd": {
     "min": "10",
     "max": "500",
     "unit": "GB",
    },
    backup": {
     "min": "0",
     "max": "1000",
     "unit": "GB",
    }
   },
   "os_templates": [
    {
     "template_id": "d3eadab1-ffd7-49e1-9b8d-ed0fcac35e4g",
     "name": "Ubuntu 20.20"
    }
   ]
  }
 ]
}

Error Response:

{
 "status": "Error",
 "message": "Error Message",
 "data": []
}

List Product Plans

GET /api/v2/product/{product_uuid}/plans


AUTHORIZATIONS:     oauth2 (products)

REQUEST HEADERS:

Key Value
Content-Type application/json
Accept application/json
Authorization Bearer {YOUR_ACCESS_TOKEN}

REQUEST BODY:

Parameter Type Description Required

Success Response:

{
 "status": "Success",
 "message": "",
 "data": [
  default_plans: [
    {
     "uuid": "23396f1e-f98e-48f0-b0bb-74dfae78c287",
     "name": "V1",
     "cpu": 1,
     "ram": 1,
     "hdd": 10,
     "price": 0
    }
  ]
 ]
}

Error Response:

{
 "status": "Error",
 "message": "Error Message",
 "data": []
}

Service Control

Create Order

POST /v2/service/create-order


AUTHORIZATIONS:     oauth2 (service)

REQUEST HEADERS:

Key Value
Content-Type application/json
Accept application/json
Authorization Bearer {YOUR_ACCESS_TOKEN}

REQUEST BODY:

Parameter Type Description Required
product_id string Remote product UUID Required
domain_name string Domain name Required
template_id string OS template UUID Required
cpu int vCores amount Required
ram int GB of RAM amount Required
hdd int GB of hard drive amount Required
ip int IP amount Required
backup int GB of backup space amount Required

Success Response:

{
 "status": "Success",
 "message": "",
 "data": [
  {
   "service_id":"23396f1e-f98e-48f0-b0bb-74dfae712345"
  }
 ]
}

Error Response:

{
 "status": "Error",
 "message": "Error Message",
 "data": []
}

Service Create

POST /api/v2/service/{service_id}/create


AUTHORIZATIONS:     oauth2 (service)

REQUEST HEADERS:

Key Value
Content-Type application/json
Accept application/json
Authorization Bearer {YOUR_ACCESS_TOKEN}

REQUEST BODY:

Parameter Type Description Required

Success Response:

{
 "status": "Success",
 "message": "",
 "data": []
}

Error Response:

{
 "status": "Error",
 "message": "Error Message",
 "data": []
}

Service Terminate

POST /api/v2/service/{service_id}/terminate


AUTHORIZATIONS:     oauth2 (service)

REQUEST HEADERS:

Key Value
Content-Type application/json
Accept application/json
Authorization Bearer {YOUR_ACCESS_TOKEN}

REQUEST BODY:

Parameter Type Description Required

Success Response:

{
 "status": "Success",
 "message": "",
 "data": []
}

Error Response:

{
 "status": "Error",
 "message": "Error Message",
 "data": []
}

Service Suspend

POST /api/v2/service/{service_id}/suspend


AUTHORIZATIONS:     oauth2 (service)

REQUEST HEADERS:

Key Value
Content-Type application/json
Accept application/json
Authorization Bearer {YOUR_ACCESS_TOKEN}

REQUEST BODY:

Parameter Type Description Required
suspend_reason string Suspend reason Optional

Success Response:

{
 "status": "Success",
 "message": "",
 "data": []
}

Error Response:

{
 "status": "Error",
 "message": "Error Message",
 "data": []
}

Service Unsuspend

POST /api/v2/service/{service_id}/unsuspend


AUTHORIZATIONS:     oauth2 (service)

REQUEST HEADERS:

Key Value
Content-Type application/json
Accept application/json
Authorization Bearer {YOUR_ACCESS_TOKEN}

REQUEST BODY:

Parameter Type Description Required

Success Response:

{
 "status": "Success",
 "message": "",
 "data": []
}

Error Response:

{
 "status": "Error",
 "message": "Error Message",
 "data": []
}

Service Upgrade

POST /api/v2/service/{service_id}/upgrade


AUTHORIZATIONS:     oauth2 (service)

REQUEST HEADERS:

Key Value
Content-Type application/json
Accept application/json
Authorization Bearer {YOUR_ACCESS_TOKEN}

REQUEST BODY:

Parameter Type Description Required
CPU int vCores amount Required
RAM int GB of RAM amount Required
HDD int GB of hard drive amount Required
IP int IP amount Required
BACKUP int GB of backup space amount Required

Success Response:

{
 "status": "Success",
 "message": "",
 "data": []
}

Error Response:

{
 "status": "Error",
 "message": "Error Message",
 "data": []
}

Service Start

POST /api/v2/service/{service_id}/start


AUTHORIZATIONS:     oauth2 (service)

REQUEST HEADERS:

Key Value
Content-Type application/json
Accept application/json
Authorization Bearer {YOUR_ACCESS_TOKEN}

REQUEST BODY:

Parameter Type Description Required

Success Response:

{
 "status": "Success",
 "message": "",
 "data": []
}

Error Response:

{
 "status": "Error",
 "message": "Error Message",
 "data": []
}

Service Stop

POST /api/v2/service/{service_id}/stop


AUTHORIZATIONS:     oauth2 (service)

REQUEST HEADERS:

Key Value
Content-Type application/json
Accept application/json
Authorization Bearer {YOUR_ACCESS_TOKEN}

REQUEST BODY:

Parameter Type Description Required

Success Response:

{
 "status": "Success",
 "message": "",
 "data": []
}

Error Response:

{
 "status": "Error",
 "message": "Error Message",
 "data": []
}

Service Restart

POST /api/v2/service/{service_id}/restart


AUTHORIZATIONS:     oauth2 (service)

REQUEST HEADERS:

Key Value
Content-Type application/json
Accept application/json
Authorization Bearer {YOUR_ACCESS_TOKEN}

REQUEST BODY:

Parameter Type Description Required

Success Response:

{
 "status": "Success",
 "message": "",
 "data": []
}

Error Response:

{
 "status": "Error",
 "message": "Error Message",
 "data": []
}

Service Reset Password

POST /api/v2/service/{service_id}/reset-password


AUTHORIZATIONS:     oauth2 (service)

REQUEST HEADERS:

Key Value
Content-Type application/json
Accept application/json
Authorization Bearer {YOUR_ACCESS_TOKEN}

REQUEST BODY:

Parameter Type Description Required
password string New VM password Required

Success Response:

{
 "status": "Success",
 "message": "",
 "data": []
}

Error Response:

{
 "status": "Error",
 "message": "Error Message",
 "data": []
}

Service Details

GET /api/v2/service/{service_id}/details


AUTHORIZATIONS:     oauth2 (service)

REQUEST HEADERS:

Key Value
Content-Type application/json
Accept application/json
Authorization Bearer {YOUR_ACCESS_TOKEN}

REQUEST BODY:

Parameter Type Description Required

Success Response:

{
 "status": "Success",
 "message": "",
 "data": []
}

Error Response:

{
 "status": "Error",
 "message": "Error Message",
 "data": []
}

Service Status

GET /api/v2/service/{service_id}/status


AUTHORIZATIONS:     oauth2 (service)

REQUEST HEADERS:

Key Value
Content-Type application/json
Accept application/json
Authorization Bearer {YOUR_ACCESS_TOKEN}

REQUEST BODY:

Parameter Type Description Required

Success Response:

{
 "status": "Success",
 "message": "",
 "data": []
}

Error Response:

{
 "status": "Error",
 "message": "Error Message",
 "data": []
}

Service Jobs

GET /api/v2/service/{service_id}/jobs


AUTHORIZATIONS:     oauth2 (service)

REQUEST HEADERS:

Key Value
Content-Type application/json
Accept application/json
Authorization Bearer {YOUR_ACCESS_TOKEN}

REQUEST BODY:

Parameter Type Description Required

Success Response:

{
 "status": "Success",
 "message": "",
 "data": []
}

Error Response:

{
 "status": "Error",
 "message": "Error Message",
 "data": []
}

Service Backups

GET /api/v2/service/{service_id}/backups


AUTHORIZATIONS:     oauth2 (service)

REQUEST HEADERS:

Key Value
Content-Type application/json
Accept application/json
Authorization Bearer {YOUR_ACCESS_TOKEN}

REQUEST BODY:

Parameter Type Description Required

Success Response:

{
 "status": "Success",
 "message": "",
 "data": []
}

Error Response:

{
 "status": "Error",
 "message": "Error Message",
 "data": []
}

Service Backup Create

POST /api/v2/service/{service_id}/backup/create


AUTHORIZATIONS:     oauth2 (service)

REQUEST HEADERS:

Key Value
Content-Type application/json
Accept application/json
Authorization Bearer {YOUR_ACCESS_TOKEN}

REQUEST BODY:

Parameter Type Description Required

Success Response:

{
 "status": "Success",
 "message": "",
 "data": []
}

Error Response:

{
 "status": "Error",
 "message": "Error Message",
 "data": []
}

Service Backup Restore

POST /api/v2/service/{service_id}/backup/restore/{backup_id}


AUTHORIZATIONS:     oauth2 (service)

REQUEST HEADERS:

Key Value
Content-Type application/json
Accept application/json
Authorization Bearer {YOUR_ACCESS_TOKEN}

REQUEST BODY:

Parameter Type Description Required

Success Response:

{
 "status": "Success",
 "message": "",
 "data": []
}

Error Response:

{
 "status": "Error",
 "message": "Error Message",
 "data": []
}

Service Backup Delete

POST /api/v2/service/{service_id}/backup/delete/{backup_id}


AUTHORIZATIONS:     oauth2 (service)

REQUEST HEADERS:

Key Value
Content-Type application/json
Accept application/json
Authorization Bearer {YOUR_ACCESS_TOKEN}

REQUEST BODY:

Parameter Type Description Required

Success Response:

{
 "status": "Success",
 "message": "",
 "data": []
}

Error Response:

{
 "status": "Error",
 "message": "Error Message",
 "data": []
}

Service Backup Schedule

GET /api/v2/service/{service_id}/backup-schedule


AUTHORIZATIONS:     oauth2 (service)

REQUEST HEADERS:

Key Value
Content-Type application/json
Accept application/json
Authorization Bearer {YOUR_ACCESS_TOKEN}

REQUEST BODY:

Parameter Type Description Required

Success Response:

{
 "status": "Success",
 "message": "",
 "data": []
}

Error Response:

{
 "status": "Error",
 "message": "Error Message",
 "data": []
}

Service Backup Schedule Create

POST /api/v2/service/{service_id}/backup-schedule/create


AUTHORIZATIONS:     oauth2 (service)

REQUEST HEADERS:

Key Value
Content-Type application/json
Accept application/json
Authorization Bearer {YOUR_ACCESS_TOKEN}

REQUEST BODY:

Parameter Type Description Required
BsTime string Backup creation time format(24h 00:00) Required
BSDays string Backup creation day format(coma separated string "mon,tue,wed,thu,fri,sat,sun") Required

Success Response:

{
 "status": "Success",
 "message": "",
 "data": []
}

Error Response:

{
 "status": "Error",
 "message": "Error Message",
 "data": []
}

Service Backup Schedule Delete

POST /api/v2/service/{service_id}/backup-schedule/delete/{backup_schedule_id}


AUTHORIZATIONS:     oauth2 (service)

REQUEST HEADERS:

Key Value
Content-Type application/json
Accept application/json
Authorization Bearer {YOUR_ACCESS_TOKEN}

REQUEST BODY:

Parameter Type Description Required

Success Response:

{
 "status": "Success",
 "message": "",
 "data": []
}

Error Response:

{
 "status": "Error",
 "message": "Error Message",
 "data": []
}