deploi.cloud

Deploi API Documentation

Introduction

Endpoint: https://api.deploi.no
All requests take JSON and return JSON.
Login using the Login command.

Index

GetDomainPrice
OrderDomain
GetInvoices
GetBackupInfo
GetEmailAccountInfo
GetFirewalls
GetDomainContacts
GetAccountInfo
GetDatabases
GetDomainInfo
DeleteDomainRecord
Login
CreateWordpress
GetEmailProducts
UpdateDomainRecord
GetKubernetesInfo
DuplicateWordpress
GetServerInfo
UpdateVirtualServer
GetAlerts
AddFirewallRule
CreateDatabase
GetWordpress
GetDomains
GetBackupPlans
GetDisks
GetUserInfo
GetVirtualServerPrice
UpdateAccountInfo
GetServers
TransferDomain
GetInvoiceInfo
GetKubeConfig
DomainAvailable
CreateKubernetes
GetDomainRecords
CreateFirewall
GetVPNs
Logout
Register
GetKubernetes
CreateVirtualServer
GetFirewallRules
AddDomainRecord

GetDomainPrice

Get the price of registering the domain.

Request:

{
  "command": "GetDomainPrice",
  "domain": "example.com"
}
  • command: string, "GetDomainPrice"
  • domain: string, domain name

Response:

{
  "success": true,
  "message": "Price found.",
  "messageId": 10,
  "priceRegistration": "95",
  "priceTransfer": "95",
  "priceRenewal": "95"
}
  • success: boolean
  • message: string
  • messageId: number, id used to lookup localized messages
  • priceRegistration: string, the registration price in NOK
  • priceTransfer: string, the transfer price in NOK
  • priceRenewal: string, the renewal price in NOK

OrderDomain

Order a new domain.

Request:

{
  "command": "OrderDomain",
  "token": "abc",
  "clientid": 10,
  "domain": "example.com",
  "operation": "register",
  "authcode": ""
  "keepowner": false
}
  • command: "OrderDomain"
  • token: string, required, must be a valid authentication token
  • clientid: string, the id of the client that will own the server
  • domain: string, domain name
  • operation: string, can be "register" or "transfer"
  • authcode: string, the authorization code for a domain transfer
  • keepowner: boolean, in case of a transfer, the owner will not change

Response:

{
  "success": true,
  "message": "Domain order in progress.",
  "messageId": 86
}
  • success: boolean
  • message: string
  • messageId: number, id used to lookup localized messages

GetInvoices

Get invoices.

Request:

{
  "command": "GetInvoices",
  "token": "abc",
  "clientid": 123
}
  • command: "GetAlerts"
  • token: string, required, must be a valid authentication token

Response:

{
  "success": true,
  "message": "",
  "invoices": [
     {
       "id": 4714,
       "date": "2022-12-18",
       "due": "2023-01-01",
       "amount": "960",
       "cancelled": false
       "paid": true
     }
   ]
}
  • success: boolean
  • message: string
  • invoices:
    • id: number
    • date: string
    • due: string
    • amount: string, the amount as a string
    • cancelled: boolean, whether the invoice has been cancelled.
    • paid: boolean, whether the invoice has been paid.

GetBackupInfo

Get information and details on a backup plan.

Request:

{
  "command": "GetBackupInfo",
  "token": "abc",
  "planid": "123"
}
  • command: "GetBackupInfo"
  • token: string, required, must be a valid authentication token
  • planid: string, requires, the ID of the plan

Response:

{
  "success": true,
  "message": "",
  "backupInfo": {
    "slots": [
       {
          "type": "interval",
          "interval":{
              "from": "2023-01-02",
              "to": "2023-01-08"
          },
          "name": "2023-01-02",
          "present": true
       }
    ]
  }
}
  • success: boolean
  • message: string
  • backupInfo: structure
    • slots, array of structures
      • type, string: can be interval and permanent
      • interval, structure
        • from
        • to
      • name
      • present

GetEmailAccountInfo

Get e-mail account information.

Request:

{
  "command": "GetEmailAccountInfo",
  "token": "abc",
  "email": "test@example.com"
}
  • command: "GetEmailAccountInfo"
  • token: string, required, must be a valid authentication token
  • email: string, required, an email address

Response:

{
  "success": true,
  "message": "",
  "used": 0.2,
  "total": 10
}
  • success: boolean
  • message: string
  • used: number, the used GB of storage
  • total: number, the available GB of storage

CreateFirewall

Create firewall.

Request:

{
   "command": "CreateFirewall",
   "token": "abc",
   "clientid": 123,
   "name": "My Firewall",
   "tb": 1,
   "ipv4s": 2
}


  • command: string, "CreateFirewall"
  • token: string, required, must be a valid authentication token
  • clientid: number, client id
  • name: string, name of firewall
  • tb: number, tera bytes of transfer per month
  • ipv4s: number, number of public IPv4 addresses to assign to the firewall

Response:

{
  "success": true,
  "message": "",
  "messageId": 0
}
  • success: boolean
  • message: string
  • messageId: number, id used to lookup localized messages

GetDomainContacts

Get the price of registering the domain.

Request:

{
  "command": "GetDomainContacts",
  "token": "abc",
  "domain": "example.com"
}
  • command: string, "GetDomainContacts"
  • token: string, required, must be a valid authentication token
  • domain: string, domain name

Response:

{
  "success": true,
  "message": "",
  "messageId": 0,
  "contacts": {
    "holder": {
      "id": "n-jm6374",
      "firstName": "Marc",
      "lastName": "Bobson",
      "company": true,
      "companyName": "Company ASA",
      "companyID": "NO 294849297 MVA",
      "contry": "NO",
      "addressLine1": "Main road 1",
      "addressLine2": "Flr. 2",
      "postalCode": "9387",
      "city": "Oslo",
      "phone": "(+47) 39384023",
      "email": "bobtest@test.com"
    },
    "administrativeContact": {
      "id": "n-jm6375",
      "firstName": "Bob",
      "lastName": "Marcson",
      "company": false,
      "companyName": "",
      "companyID": "",
      "contry": "NO",
      "addressLine1": "Main road 2",
      "addressLine2": "Flr. 1",
      "postalCode": "9387",
      "city": "Oslo",
      "phone": "(+47) 57395475",
      "email": "bobtest@test.com"
    },
    "technicalContact": {
      "id": "n-jm6375",
      "firstName": "Bob",
      "lastName": "Marcson",
      "company": false,
      "companyName": "",
      "companyID": "",
      "contry": "NO",
      "addressLine1": "Main road 2",
      "addressLine2": "Flr. 1",
      "postalCode": "9387",
      "city": "Oslo",
      "phone": "(+47) 57395475",
      "email": "bobtest@test.com"
    },
    "billingContact": {
      "id": "n-jm6375",
      "firstName": "Bob",
      "lastName": "Marcson",
      "company": false,
      "companyName": "",
      "companyID": "",
      "contry": "NO",
      "addressLine1": "Main road 2",
      "addressLine2": "Flr. 1",
      "postalCode": "9387",
      "city": "Oslo",
      "phone": "(+47) 57395475",
      "email": "bobtest@test.com"
    }
  }
}
  • success: boolean
  • message: string
  • messageId: number, id used to lookup localized messages
  • contacts: structure
    • holder: structure Domain Contact
    • administrativeContact: structure Domain Contact
    • technicalContact: structure Domain Contact
    • billingContact: structure Domain Contact

structure Domain Contact:

  • id: string
  • firstName: string
  • lastName: string
  • company: boolean, is company or person
  • companyName: string
  • companyID: string
  • contry: string
  • addressLine1: string
  • addressLine2: string
  • postalCode: string
  • city: string
  • phone: string
  • email: string

GetAccountInfo

Get account information.

Request:

{
  "command": "GetAccountInfo",
  "token": "abc",
  "clientid": 123
}
  • command: "GetAccountInfo"
  • token: string, required, must be a valid authentication token

Response:

{
  "success": true,
  "message": "",
  "accountInfo": {
      "id": 123,
      "firstname": "Bob",
      "lastname": "Jensen",
      "email": "bob@company.com",
      "phone": "1393927405",
      "type": "company",
      "companyname": "Company Ltd",
      "legalentityid": "53942340929",
      "addressline1": "Majorstreet 1",
      "addressline1": "",
      "city": "New Sidney",
      "postalcode": "23902",
      "countrycode": "US",
      "agreedtotac": true,
      "receiveinfo": true,
      "ehfinvoice": false,
      "autocreate": true
  }
}
  • success: boolean
  • message: string
  • accountinfo:
    • loggedin: boolean, whether or not user is logged in.
    • firstname: string
    • lastname: string
    • email: string
    • phone: string
    • type: string, either "company" or "person"
    • companyname: string
    • legalentityid: string
    • addressline1: string
    • addressline1: string
    • city: string
    • postalcode: string
    • countrycode: string, two letter contry code, ISO 3166-1 alpha-2
    • agreedtotac: boolean
    • receiveinfo: boolean
    • ehfinvoice: boolean
    • autocreate: boolean, whether the client can automatically provision services

GetDatabases

Get managed Kubernetes accounts.

Request:

{
  "command": "GetDatabases",
  "token": "abc",
  "clientid": 123
}
  • command: "GetDatabases"
  • token: string, required, must be a valid authentication token

Response:

{
  "success": true,
  "message": "",
  "databases": [
   {
     "id": 106,
     "type": "MySQL",
     "ram": 1,
     "cpu": 0.25,
     "disk": 10,
     "status": {
       "status": "active",
       "diskUsed": 0.3,
       "ips": ["192.0.2.14", "10.0.0.69", "2001:db8:7204:1::a11a:5741"],
       "post": 3427
     }
   },
   {
     "id": 117,
     "type": "PostgreSQL",
     "ram": 1,
     "cpu": 0.25,
     "disk": 9.9,
     "status": {
       "status": "active",
       "diskUsed": 0.1,
       "ips": ["192.0.2.14"],
       "post": 5528
     }
   }
  ]
}
  • success: boolean
  • message: string
  • databases: array of structures
    • id: number
    • type: Type of database, for example MySQL or PostgreSQL
    • ram: number, RAM quota in GB
    • cpu: number, CPU quota
    • disk: number, Disk quota.
    • status: structure
      • status: string, for example "active" or "inactive"
      • diskUsed: number, current disk usage
      • ips: array of strings, the IP the database is listening on
      • port: number, the port the database is listening on

GetDomainInfo

Get domain information.

Request:

{
  "command": "GetDomains",
  "token": "abc",
  "domain": "example.com"
}
  • command: "GetDomains"
  • token: string, required, must be a valid authentication token
  • domain: string, the domain name

Response:

{
  "success": true,
  "message": "",
  "domainInfo": [
    {
      "idOwner": "x1", 
      "idAdmin": "x2", 
      "idTech": "x3", 
      "idBilling": "x4"
    }
  ]
}
  • success: boolean, whether the request was successfull or not.
  • message: string, if unsuccessfull, the reason why
  • id: number. The deploi domain id.
  • name: string. The domain name.
  • registrationDate: date. Fetched from registrar.
  • expiryDate: date. Fetched from registrar.
  • nextDueDate: date. Fetched from deploi.

DeleteDomainRecord

Delete a domain record.

Request:

{
   "command":"DeleteDomainRecord",
   "token":"abc",
   "domain":"example.com",
   "type":"A",
   "host":"www",
   "value": "192.0.2.146"
}


  • command: string, "DeleteDomainRecord"
  • token: string, required, must be a valid authentication token
  • type: string, can be "A", "AAAA", "TXT", "MX", "CNAME", "SOA" and "SRV"
  • host: string
  • value: string

Response:

{
  "success": true,
  "message": "",
  "messageId": 0
}
  • success: boolean
  • message: string
  • messageId: number, id used to lookup localized messages

Login

Login to account

Request:

{
  "command": "Login",
  "username": "username",
  "password": "password",
  "secondfactor": "413903"
}
  • command: "Login"
  • username: string, required. The e-mail of the user.
  • password: string, required
  • secondfactor: string, optional. Two factor code for two factor authentication.

Response:

{
  "success": true,
  "message": "Login successfull.",
  "data": {
    "token": "abc",
    "clients": [
      {
         "id": 123,
         "name": "Company A"
      },
      {
         "id": 321,
         "name": "Company B"
      }
    ]
  }
}
  • success: boolean
  • message: string
  • data: structure, optional
    • token: string, login token to be passed with subsequent requests
    • clients: array of numbers, the clients the user has access to

CreateWordpress

Create a WordPress website on Deploi's managed WordPress solution.

Request:

{
  "command": "CreateWordpress",
  "token": "abc",
  "clientid": 10,
  "domain": "deploi.cloud",
  "ram": 16,
  "cpu": 4,
  "disk": 10
}
  • command: "CreateWordpress"
  • token: string, required, must be a valid authentication token
  • clientid: string, the id of the client that will own the server
  • domain: string, the domain to be used for the WordPress website
  • ram: number, GB of RAM available to Kubernetes services
  • cpu: number, CPU available to Kubernetes services
  • disk: number, GB of disk available to the services

Response:

{
  "success": true,
  "message": "Creating Wordpress website.",
  "messageId": 10
}
  • success: boolean
  • message: string
  • messageId: number, id used to lookup localized messages

GetAccountInfo

Get account information.

Request:

{
  "command": "GetEmailProducts",
  "token": "abc",
  "clientid": 123
}
  • command: "GetAccountInfo"
  • token: string, required, must be a valid authentication token

Response:

{
  "success": true,
  "message": "",
  "emailProducts": [
    {
      "id": 517,
      "email": "test@deploi.com",
      "type": "account"
    }
  ]
}
  • success: boolean
  • message: string
  • emailProducts: array of structures
    • id: number
    • email: string, the email address
    • type: string, account or transactional
    • used: number, the used GB of storage
    • total: number, the available GB of storage

UpdateDomainRecord

Update a domain record.

Request:

{
  "command": "UpdateDomainRecord",
  "token": "abc",
  "domain": "example.com",
  "type": "A",
  "from": {
    "host":"www",
    "value": "192.0.2.146",
    "options": {
      "ttl": 86400
    }
  },
  "to": {
    "host":"www2",
    "value": "192.0.2.147",
    "options": {
      "ttl": 86400
    }
  }
}


  • command: string, "AddDomainRecord"
  • token: string, required, must be a valid authentication token
  • type: string, can be "A", "AAAA", "TXT", "MX", "CNAME", "SOA" and "SRV"
  • from: structure
    • host
    • value
    • options: structure
      • ttl: number, time to live in seconds
      • service: string
      • protocol: string, can be "tcp", "udp" or "tls"
      • priority: number, 0 - 65535
      • weight: number, 0 - 65535
      • port: number, 0 - 65535
  • to: structure
    • host
    • value
    • options: structure
      • ttl: number, time to live in seconds
      • service: string
      • protocol: string, can be "tcp", "udp" or "tls"
      • priority: number, 0 - 65535
      • weight: number, 0 - 65535
      • port: number, 0 - 65535

Response:

{
  "success": true,
  "message": "",
  "messageId": 0
}
  • success: boolean
  • message: string
  • messageId: number, id used to lookup localized messages

GetKubernetesInfo

Get information about a Kubernetes account.

Request:

{
  "command": "GetKubernetesInfo",
  "token": "abc",
  "id": 123
}
  • command: "GetKubernetesInfo"
  • token: string, required, must be a valid authentication token
  • id: number, ID of the server. Must be accessible by the logged in account.

Response:

{
  "success": true,
  "message": "",
  "messageId": 0,
  "kubernetesInfo": {
   "resources": {
      "cpuAvailable": 4000,
      "cpuUsed": 0,
      "diskAvailable": 21474836480,
      "diskUsed": 0,
      "ramAvailable": 8589934592,
      "ramUsed": 0
    }
  }
}
  • success: boolean
  • message: string
  • messageId: number
  • kubernetesInfo: structure
    • resources: structure
      • cpuAvailable: number, the number of milli CPU available (1000m = 1 vCPU)
      • cpuUsed: number, the number of milli CPUs in use.
      • diskAvailable: number, the number of bytes available
      • diskUsed: number, the number of bytes allocated for storage
      • ramAvailable: number, the number of bytes of memory available for services.
      • ramUsed: number, the number of bytes of ram currently allocated for services.

DuplicateWordpress

Create a database on Deploi's managed database solution.

Request:

{
  "command": "DuplicateWordpress",
  "token": "abc",
  "type": "forge",
  "id": 123,
  "newDomain": "new.example.com"
}
  • command: "DuplicateWordpress"
  • token: string, required, must be a valid authentication token
  • type: "forge"
  • id: number, the ID of the WordPress-installation
  • newDomain: string, the domain of the duplicated Wordpress site

Response:

{
  "success": true,
  "message": "Creating Database.",
  "messageId": 10
}
  • success: boolean
  • message: string
  • messageId: number, id used to lookup localized messages

GetServerInfo

List servers.

Request:

{
  "command": "GetServerInfo",
  "token": "abc",
  "id": 123
}
  • command: "GetServerInfo"
  • token: string, required, must be a valid authentication token
  • id: number, ID of the server. Must be accessible from the logged in account.

Response:

{
  "success": true,
  "message": "",
  "servers": {
    "id": 2,
    "name": "ExampleWebServer",
    "type": "virtual",
    "virtual": {
      "mainip": "192.0.2.55",
      "ram": 2,
      "cpu": 1,
      "disks": [
        {
          "id": "125",
          "type": "ssd",
          "size": 20
        },
        {
          "id": "126",
          "type": "hdd",
          "size": 1000
        }
      ],
      "suspended": false,
      "running": true,
      "ips": [
        "192.0.2.55",
        "2001:8d1:7204:1:0000:0000:01a2:3ecc",
        "10.5.0.112"
      ]
    },
    "licenses": []
  }
}
  • success: boolean
  • message: string
  • serverInfo: structure
    • id: number
    • name: navn på server hos deploi
    • type: type server: virtual or dedicated
    • virtual: structure
    • dedicated: structure
    • licenses: array of structures, licenses associated with the server

UpdateVirtualServer

Update virtual server.

Request:

{
  "command": "UpdateVirtualServer",
  "token": "abc",
  "id": 123,
  "setCpu": true,
  "cpucent": 400,
  "setRam": false,
  "ram": 0,
  "diskChange": [
    {
        "id": "323",
        "size": 33
    }
  ]
}
  • command: "UpdateVirtualServer"
  • token: string, required, must be a valid authentication token
  • id: number, id of virtual server product
  • setCpu: boolean, whether to update the amount of CPU
  • cpucent: number, new CPU amount
  • setRam: boolean, whether to update the amount of RAM
  • ram: number, new amount of RAM in GB
  • diskChange: array of structures
    • id: string, id of disk
    • size: number, the new size of the disk in GB

Response:

{
  "success": true,
  "message": "Server ordered.",
  "messageId": 10
}
  • success: boolean
  • message: string
  • messageId: number, id used to lookup localized messages

GetAlerts

Get alerts.

Request:

{
  "command": "GetAlerts",
  "token": "abc",
  "clientid": 123
}
  • command: "GetAlerts"
  • token: string, required, must be a valid authentication token

Response:

{
  "success": true,
  "message": "",
  "alerts": [
    {
      "id": 834,
      "description": "Backup of server 123 has been performed.",
      "checkFrequency": {
        "day": 1,
        "week": 0,
        "month": 0,
        "year": 0
      },
      "checkTime": "01:00"
    }
  ]
}
  • success: boolean
  • message: string
  • alerts:
    • id: number
    • description: string, description of the alert
    • checkFrequency: structure, how often the alert is checked
      • day: number
      • week: number
      • month: number
      • year: number
    • checkTime: time, the time of day when the check is performed

AddFirewallRule

Add firewall rule.

Request:

{
   "command": "AddFirewallRule",
   "token": "abc",
   "id": 123,
   "src": "192.0.2.2",
   "src-port": 59375,
   "dst": "10.0.1.5",
   "dst-port": 22,
   "protocol": "tpc",
   "allow-src-cidr": "192.0.2.0/8"
}


  • command: string, "AddFirewallRule"
  • token: string, required, must be a valid authentication token
  • src: string, public IP to expose
  • src-port: number, port to expose on the public IP
  • dst: string, private IP to expose on the public IP
  • dst-port: number, port to expose on the public port
  • protocol: string, tcp or udp
  • allow-src-cidr: string, cidr of allowed addresses

Response:

{
  "success": true,
  "message": "",
  "messageId": 0
}
  • success: boolean
  • message: string
  • messageId: number, id used to lookup localized messages

CreateDatabase

Create a database on Deploi's managed database solution.

Request:

{
  "command": "CreateDatabase",
  "token": "abc",
  "clientid": 10,
  "type": "MySQL",
  "ram": 16,
  "cpu": 4,
  "disk": 10
}
  • command: "CreateServers"
  • token: string, required, must be a valid authentication token
  • clientid: string, the id of the client that will own the server
  • type: string, can be "MySQL" or "PostgreSQL"
  • ram: number, GB of RAM available to Kubernetes services
  • cpu: number, CPU available to Kubernetes services
  • disk: number, GB of disk available to the services

Response:

{
  "success": true,
  "message": "Creating Database.",
  "messageId": 10
}
  • success: boolean
  • message: string
  • messageId: number, id used to lookup localized messages

GetWordpress

Get managed WordPress websites.

Request:

{
  "command": "GetWordpress",
  "token": "abc",
  "clientid": 123
}
  • command: "GetWordpress"
  • token: string, required, must be a valid authentication token

Response:

{
  "success": true,
  "message": "",
  "wordpresses": [
   {
     "type": "deploihosted",
     "id": 569,
     "domain": "example.cloud",
     "deploihosted": {
       "ram": 8,
       "cpu": 400,
       "disk": 20,
     },
     "forge": {
       "siteId": 0,
       "serverId": 0 
     }
   }
  ]
}
  • success: boolean
  • message: string
  • wordpresses:
    • type: string, can be "deploihosted" or "forge"
    • id: number
    • ram: RAM quota for website
    • cpu: CPU-cent quota for website
    • disk: disk quota for website

GetDomains

Get domain list for account.

Request:

{
  "command": "GetDomains",
  "token": "abc",
  "clientid": 123
}
  • command: "GetDomains"
  • token: string, required, must be a valid authentication token
  • clientid

Response:

{
  "success": true,
  "message": "",
  "domains": [
    {
      "name": "inductive.no", 
      "registrationDate": "2015-06-01", 
      "expiryDate": "2023-06-01", 
      "nextDueDate": "2023-05-01"
    }
  ]
}
  • success: boolean, whether the request was successfull or not.
  • message: string, if unsuccessfull, the reason why
  • id: number. The deploi domain id.
  • name: string. The domain name.
  • registrationDate: date. Fetched from registrar.
  • expiryDate: date. Fetched from registrar.
  • nextDueDate: date. Fetched from deploi.

GetBackupPlans

List backup plans.

Request:

{
  "command": "GetBackupPlans",
  "token": "abc",
  "clientid": 123
}
  • command: "GetBackupPlans"
  • token: string, required, must be a valid authentication token
  • clientid: string, the id of the client that owns the backup plans

Response:

{
  "success": true,
  "message": "",
  "backupPlans": [
    {
      "id": "197-1-1",
      "backupof": "VPS",
      "objectid": "123",
      "objectname": "My VPS",
      "location": "1",
      "daily": 0,
      "weekly": 1,
      "monthly": 0,
      "yearly": 0
    }
  ]
}
  • success: boolean
  • message: string
  • backupPlans: array of structures.
    • id: string, ID of backupplan.
    • backupof: string, what is backed up.
    • objectid: string, id of what is being backed up.
    • objectname: string, name of what is backuped up.
    • location: Name of location where backup is stored.
    • daily: number, how many daily backups are kept
    • weekly: number, how many weekly backups are kept
    • monthly: number, how many monthly backups are kept
    • yearly: number, how many yearly backups are kept

GetDisks

List disks.

Request:

{
  "command": "GetDisks",
  "token": "abc",
  "clientid": 123
}
  • command: "GetDisks"
  • token: string, required, must be a valid authentication token
  • clientid: string, the id of the client that owns the disks

Response:

{
  "success": true,
  "message": "",
  "disks": [
    {
      "id": "hwe30nflge",
      "name": "Datadisk",
      "type": "SSD",
      "technology": "intern",
      "size": 42949672960
    }
  ]
}
  • success: boolean
  • message: string
  • disks: array of structures
    • id: string, ID of disk
    • name: string, name of disk
    • type: string, type of disk, either SSD or HDD.
    • technology: string, either "internal" or "network"
    • size: number, size of disk

GetUserInfo

Get user information.

Request:

{
  "command": "GetUserInfo",
  "token": "abc"
}
  • command: "GetUserInfo"
  • token: string, required, must be a valid authentication token

Response:

{
  "success": true,
  "message": "",
  "userInfo": {
      "id": 432,
      "firstname": "Bob",
      "lastname": "Jensen",
      "email": "bob@company.com",
      "twoFactorAuthentication": false,
      "accounts": [
         123,
         321
      ]
  }
}
  • success: boolean
  • message: string
  • accountinfo:
    • loggedin: boolean, whether or not user is logged in.
    • firstname: string
    • lastname: string
    • email: string
    • phone: string
    • type: string, either "company" or "person"
    • companyname: string
    • companyid: string
    • addressline1: string
    • addressline1: string
    • city: string
    • postalcode: string
    • countrycode: string, two letter contry code, ISO 3166-1 alpha-2
    • agreedtotac: boolean
    • receiveinfo: boolean
    • ehfinvoice: boolean
    • autocreate: boolean, whether the client can automatically provision services

GetVirtualServerPrice

Get the price of a virtual server.

Request:

{
  "command": "GetVirtualServerPrice",
  "product" "server",
  "server": {
    "ram": 4,
    "cpu": 1,
    "disk": 10,
  }
}
  • command: "CreateServers"
  • product: string, required, product name
  • server: structure, specification of server
    • ram: number, GB of RAM
    • cpu: number, CPU percentage
    • disk: number, GB of disk

Response:

{
  "success": true,
  "message": "",
  "price": 112
}
  • success: boolean
  • message: string
  • price: number

UpdateAccountInfo

Update account information for an account.

Request:

{
  "command": "UpdateAccountInfo",
  "token": "abc",
  "clientid": 123,
  "settype": false,
  "type": "",
  "setcompanyname": false,
  "companyname": "",
  "setlegalentityid": false,
  "legalentityid": "",
  "setfirstname": false,
  "firstname": "",
  "setlastname": false,
  "lastname": "",
  "setemail": false,
  "email": "",
  "setphone": false,
  "phone": "",
  "setaddressline1": false,
  "addressline1": "",
  "setaddressline2": false,
  "addressline2": "",
  "setpostalcode": false,
  "postalcode": "",
  "setcity": false,
  "city": "",
  "setstate": false,
  "state": "",
  "setcountrycode": false,
  "countrycode": "",
  "setEhfInvoice": false,
  "ehfinvoice": false,
  "setagreedtotac": false,
  "agreedtotac": false,
  "setreceiveinfo": false,
  "receiveinfo": false
}


  • command: string, "UpdateAccountInfo"
  • token: string, required, must be a valid authentication token
  • clientid: number, account id
  • settype: boolean
  • type: string, "company" or "persib"
  • setcompanyname: boolean
  • companyname: string, see register
  • setlegalentityid: boolean
  • legalentityid: string, see register
  • setfirstname: boolean
  • firstname: string, see register
  • setlastname: boolean
  • lastname: string, see register
  • setemail: boolean
  • email: string, see register
  • setphone: boolean
  • phone: string, see register
  • setaddressline1: boolean
  • addressline1: string, see register
  • setaddressline2: boolean
  • addressline2: string, see register
  • setpostalcode: boolean
  • postalcode: string, see register
  • setcity: boolean
  • city: string, see register
  • setstate: boolean
  • state: string, see register
  • setcountrycode: boolean
  • countrycode: string, see register
  • setEhfInvoice: boolean
  • ehfinvoice: boolean, see register
  • setagreedtotac: boolean
  • agreedtotac: boolean, see register
  • setreceiveinfo: boolean
  • receiveinfo: boolean, see register

Response:

{
  "success": true,
  "message": "Nothing to change in request.",
  "messageId": 64
}
  • success: boolean
  • message: string
  • messageId: number, id used to lookup localized messages

GetServers

List servers.

Request:

{
  "command": "GetServers",
  "token": "abc",
  "clientid": 123
}
  • command: "GetServers"
  • token: string, required, must be a valid authentication token

Response:

{
  "success": true,
  "message": "",
  "servers": [
    {
      "id": 2,
      "name": "testvps",
      "type": "virtual",
      "ram": 2,
      "cpu": 1,
      "disk": 10,
      "status": "active"
    }
  ]
}
  • success: boolean
  • message: string
  • servers: array
    • id: number
    • name: string, name of server at Deploi
    • type: type server: virtual or dedicated
    • ram: GB RAM
    • cpu: processor power
    • disk: GB Disk
    • status: status, options are: "creating", "active" and "off"

TransferDomain

Transfer a domain to Deploi.

Request:

{
  "command": "TransferDomain",
  "token": "abc",
  "clientid": 10,
  "domain": "example.com",
  "authcode": "amfi3mfp"
}
  • command: "TransferDomain"
  • token: string, required, must be a valid authentication token
  • clientid: string, the id of the client that will own the server
  • domain: string, domain name
  • authcode: string, an authorization code for the domain name

Response:

{
  "success": true,
  "message": "Domain transfer in progress.",
  "messageId": 93
}
  • success: boolean
  • message: string
  • messageId: number, id used to lookup localized messages

GetInvoiceInfo

Get invoice information

Request:

{
  "command": "GetInvoiceInfo",
  "token": "abc",
  "invoiceNr": 432
}
  • command: "GetInvoiceInfo"
  • token: string, required, must be a valid authentication token
  • invoiceid: number, requires, the invoice number

Response:

{
  "success": true,
  "message": "",
  "invoiceInfo": {
    "date": "2022-12-18",
    "due": "2023-01-01",
    "amount": "960",
    "cancelled": false
    "paid": true,
    "lines": [
        {
            "description": "Server",
            "amount": "960"
        }
    ]
  }
}
  • success: boolean
  • message: string
  • invoiceInfo: structure
    • date: string
    • due: string
    • amount: string, the amount as a string
    • cancelled: boolean, whether the invoice has been cancelled.
    • paid: boolean, whether the invoice has been paid.

GetKubeConfig

Get Kubernetes config file for managed Kubernetes account.

Request:

{
  "command": "GetKubeConfig",
  "token": "abc",
  "id": 123
}
  • command: "GetKubeConfig"
  • token: string, required, must be a valid authentication token
  • id: number, ID of the server. Must be accessible by the logged in account.

Response:

{
  "success": true,
  "message": "",
  "messageId": 0,
  "kubeconfig": "..."
}
  • success: boolean
  • message: string
  • messageId: number
  • kubeconfig: string, the kube config file contents

DomainAvailable

Check if a domain is available.

Request:

{
  "command": "DomainAvailable",
  "domain": "example.com"
}
  • command: string, "DomainAvailable"
  • domain: string, domain name

Response:

{
  "success": true,
  "message": "success",
  "messageId": 10,
  "available": false
}
  • success: boolean
  • message: string
  • messageId: number, id used to lookup localized messages
  • available: boolean, whether the domain is available

CreateKubernetes

Create a Kubernetes account on Deploi's managed Kubernetes solution.

Request:

{
  "command": "CreateKubernetes",
  "token": "abc",
  "clientid": 10,
  "ram": 16,
  "cpu": 4,
  "disk": 10
}
  • command: "CreateServers"
  • token: string, required, must be a valid authentication token
  • clientid: string, the id of the client that will own the server
  • ram: number, GB of RAM available to Kubernetes services
  • cpu: number, CPU available to Kubernetes services
  • disk: number, GB of disk available to the services

Response:

{
  "success": true,
  "message": "Creating Kubernetes account.",
  "messageId": 10
}
  • success: boolean
  • message: string
  • messageId: number, id used to lookup localized messages

GetDomainRecords

Get the records of a domain.

Request:

{
  "command": "GetDomainRecords",
  "token": "abc",
  "domain": "example.com"
}
  • command: string, "GetDomainRecords"
  • token: string, required, must be a valid authentication token
  • domain: string, domain name

Response:

{
  "success": true,
  "message": "",
  "messageId": 0,
  "records": [
    {
      "type": "A",
      "host": "www.progsbase.com",
      "value": "192.0.2.146",
      "options": {
        "ttl": 86400,
        "serviceSet": false,
        "service": "",
        "protocolSet": false,
        "protocol": "",
        "priority: 0,
        "weight: 0,
        "port: 0
      }
    },
    {
      "type": "AAAA",
      "host": "www.progsbase.com",
      "value": "2001:db8::8a2e:370:7334",
      "options": {
        "ttl": 86400,
        "serviceSet": false,
        "service": "",
        "protocolSet": false,
        "protocol": "",
        "priority": 0,
        "weight": 0,
        "port": 0
      }
    }
  ]
}
  • success: boolean
  • message: string
  • messageId: number, id used to lookup localized messages
  • records: arrays of structure
    • type: string, can be "A", "AAAA", "TXT", "MX", "NS", "CNAME", "SOA", "PTR", "SRV", "DCHID" and "DNAME"
    • host: string
    • value: string
    • options: structure
      • ttl: number, time to live in seconds
      • service: string
      • protocol: string, can be "tcp", "udp" or "tls"
      • priority: number, 0 - 65535
      • weight: number, 0 - 65535
      • port: number, 0 - 65535

CreateFirewall

Create firewall.

Request:

{
   "command": "CreateFirewall",
   "token": "abc",
   "clientid": 123,
   "name": "My Firewall",
   "tb": 1,
   "ipv4s": 2
}


  • command: string, "CreateFirewall"
  • token: string, required, must be a valid authentication token
  • clientid: number, client id
  • name: string, name of firewall
  • tb: number, tera bytes of transfer per month
  • ipv4s: number, number of public IPv4 addresses to assign to the firewall

Response:

{
  "success": true,
  "message": "",
  "messageId": 0
}
  • success: boolean
  • message: string
  • messageId: number, id used to lookup localized messages

GetVPNs

Get VPN accounts.

Request:

{
  "command": "GetVPNs",
  "token": "abc",
  "clientid": 123
}
  • command: "GetVPNs"
  • token: string, required, must be a valid authentication token

Response:

{
  "success": true,
  "message": "",
  "vpns": [
   {
     "id": 565,
     "username": "username1",
     "ip": "192.0.2.14"
   }
  ]
}
  • success: boolean
  • message: string
  • vpns:
    • id: number
    • username: string
    • ip: string

Logout

Log out of an account.

Request:

{
  "command": "Logout",
  "token": "abc"
}
  • command: "Login"
  • token: string, required, must be a valid authentication token

Response:

{
  "success": true,
  "message": "Logout successful."
}
  • success: boolean
  • message: string

Register

Register a new account.

Request:

{
  "command": "Register",
  "firstname": "",
  "lastname": "",
  "email": "",
  "phone": "",
  "password": "",
  "type": "company",
  "companyname": "",
  "taxid": "",
  "line1": "",
  "line2": "",
  "city": "",
  "state": "",
  "postalcode": "",
  "country": "NO",
  "agreedtotac": true,
  "receiveinfo": false,
  "ehfinvoice": false
}
  • command: "Register"
  • firstname: string, required
  • lastname: string, required
  • email: string, required, must be valid email
  • phone: string, required, must be valid phone number
  • password: string, required
  • type: string, required, must either "company" or "person"
  • companyname: string, required if type is "company", name of legal entity
  • taxid: string, required if type is "company", must be valid company number
  • line1: string, required, must be valid company address
  • line2: string
  • city: string, required
  • state: string
  • postalcode: string, required
  • country: two characters country code, required, must be valid country code
  • agreedtotac: boolean, required, must be true
  • receiveinfo: boolean, required
  • ehfinvoice: boolean, required

Response:

{
  "success": true,
  "message": "Registration successful.",
  "messageId": 1
}
  • success: boolean
  • message: string
  • messageId: number, id used to lookup localized messages

GetKubernetes

Get managed Kubernetes accounts.

Request:

{
  "command": "GetKubernetes",
  "token": "abc",
  "clientid": 123
}
  • command: "GetKubernetes"
  • token: string, required, must be a valid authentication token

Response:

{
  "success": true,
  "message": "",
  "kubernetes": [
   {
     "id": 565,
     "ram": 8,
     "cpu": 4,
     "disk": 20
   }
  ]
}
  • success: boolean
  • message: string
  • kubernetes:
    • id: number
    • ram: RAM quota for all systems
    • cpu: CPU quota for all systems
    • disk: disk quota for all storage

CreateVirtualServer

Create virtual server.

Request:

{
  "command": "CreateVirtualServer",
  "token": "abc",
  "clientid": 10,
  "name": "My server",
  "ram": 16,
  "cpu": 4,
  "disks": [
    {
      "idSet": false,
      "id": "",
      "name": "mydisk1",
      "size": 40,
      "type": "ssd",
      "backupSpecs": {
        "profileIdSet": false,
        "profileId": 0,
        "spec": [
          {
            "loc": 1,
            "daily": 10,
            "weekly": 0,
            "monthly": 0,
            "yearly": 0
          }
        ]
      }
    }
  ],
  "OS": "Ubuntu 22.04",
  "licenses": [],
  "password": "Pn37NaQbN6bfAg7",
  "publickey": "",
  "allowRemotePasswordLogin": true
}
  • command: "CreateVirtualServer"
  • token: string, required, must be a valid authentication token
  • clientid: string, the id of the client that will own the server
  • name: string, name of server
  • ram: number, GB of RAM
  • cpu: number, CPU
  • disks: structure
    • name: string, name of disk
    • size: number, size in GB
    • type: string, can be "ssd", "hdd"
    • backupSpecs, structure
      • daily: number, how many daily backups to keep
      • weekly: number, how many weekly backups to keep
      • monthly: number, how many monthly backups to keep
      • yearly: number, how many yearly backups to keep
      • locations: structure
        • 1: boolean, store backups at location 1
        • 2: boolean, store backups at location 2
  • OS: string, name of OS to install options are: "Ubuntu 22.04", "Ubuntu 20.04", "Windows Server 2016", "Windows Server 2019", "Fedora 34", "Suse 15.1", "Debian 10", "Debian 11", "CentOS 8.2", "AlmaLinux 9.0"
  • licenses: array of strings. Licenses for software. Options are "Windows".
  • password: string, the login password.
  • publickey: string, the login pubic key.
  • allowRemotePasswordLogin: boolean. Allow remote password login. Not recommended.

Response:

{
  "success": true,
  "message": "Server ordered.",
  "messageId": 10
}
  • success: boolean
  • message: string
  • messageId: number, id used to lookup localized messages

GetFirewallRules

Get firewall rules.

Request:

{
   "command": "GetFirewallRules",
   "token": "abc",
   "id": 123
}


  • command: string, "CreateFirewall"
  • token: string, required, must be a valid authentication token
  • id: number, firewall id

Response:

{
  "success": true,
  "message": "",
  "messageId": 0
}
  • success: boolean
  • message: string
  • messageId: number, id used to lookup localized messages

AddDomainRecord

Add domain record.

Request:

{
   "command":"AddDomainRecord",
   "token":"abc",
   "domain":"example.com",
   "type":"A",
   "host":"www",
   "value": "192.0.2.146",
   "options":{
     "ttl": 86400,
     "service": "",
     "protocol": "",
     "priority: 0,
     "weight: 0,
     "port: 0
   }
}


  • command: string, "AddDomainRecord"
  • token: string, required, must be a valid authentication token
  • type: string, can be "A", "AAAA", "TXT", "MX", "CNAME", "SOA" and "SRV"
  • host: string
  • value: string
  • options: structure
    • ttl: number, time to live in seconds
    • service: string
    • protocol: string, can be "tcp", "udp" or "tls"
    • priority: number, 0 - 65535
    • weight: number, 0 - 65535
    • port: number, 0 - 65535

Response:

{
  "success": true,
  "message": "",
  "messageId": 0
}
  • success: boolean
  • message: string
  • messageId: number, id used to lookup localized messages