deploi.cloud

Deploi API Documentation

Introduction

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

Index

WordpressCheckSetup
GetDomainPrice
GetFirewallPublicIPs
OrderDomain
GetInvoices
Ping
AddFirewallPrivateNetwork
GetBackupInfo
ChangeNameServers
GetEmailAccountInfo
GetFirewalls
GetDomainContacts
GetAccountInfo
GetDatabases
UpdateDomainContact
DeleteDomainRecord
Login
GetEmailProducts
UpdateDomainRecord
GetKubernetesInfo
DuplicateWordpress
GetServerInfo
UpdateVirtualServer
GetAlerts
AddFirewallRule
GetWordpress
GetDomains
GetBackupPlans
GetDisks
AddFirewallPrivateNetworkConnector
GetUserInfo
GetVirtualServerPrice
UpdateAccountInfo
GetFirewallPrivateNetworks
GetServers
DeleteFirewallRule
TransferDomain
DeleteFirewallPrivateNetworkConnector
GetInvoiceInfo
DeleteFirewallPrivateNetwork
GetKubeConfig
DomainAvailable
GetDomainRecords
OrderEmailService
CreateFirewall
GetVPNs
Logout
Register
GetWordpressInfo
SetEmailPassword
GetKubernetes
CreateVirtualServer
GetFirewallRules
AddDomainRecord

WordpressCheckSetup

Check that the WordPress was set up correctly.

Request:

{
   "command": "WordpressCheckSetup",
   "token": "cebxfljqkzjyirqxvyxsbaxdq",
   "id": 123,
   "network": "192.168.2.1/24"
}
  • command: string, "WordpressCheckSetup"
  • token: string, required, must be a valid authentication token
  • id: number, the ID of the WordPress service
  • network: string, the private network connector that get deleted from the firewall

Response:

{
  "success": true,
  "message": "Domain IPs checked",
  "messageId": -1,
  
  "ips": {
    "success": true,
    "exists": true,
    "message": ""
  },
  "installed": {
    "success": true,
    "exists": true,
    "message": ""
  }
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, id used to lookup localized messages
  • ips: structure
    • success: boolean, succeeded checking IP status
    • exists: boolean, the IPs are set correctly
    • message: string, why the IP check failed
  • installed: structure
    • success: boolean, succeeded checking that WordPress was installed
    • exists: boolean, WordPress was installed correctly
    • message: string, why the install check failed

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, if success is false, a description of the problem that occurred
  • 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

GetFirewallPublicIPs

Get the public IPs of the firewall.

Request:

{
   "command": "GetFirewallPublicIPs",
   "token": "cebxfljqkzjyirqxvyxsbaxdq",
   "id": 123
}
  • command: string, "GetFirewallPublicIPs"
  • token: string, required, must be a valid authentication token
  • id: number, the ID of the firewall service

Response:

{
  "success": true,
  "message": "",
  "messageId": 0,
  
  "publicIPv4s": [
    "191.64.51.72"
  ]
  
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages
  • publicIPv4s: array, list of the firewall's public IPv4s

OrderDomain

Order a new domain.

Request:

{
  "command": "OrderDomain",
  "token": "cebxfljqkzjyirqxvyxsbaxdq",
  "clientid": 15,
  "domain": "example.com",
  "operation": "register",
  "prepare": false,
  "authcode": "",
  "setOwnerAndContacts": true,
  "setOwner": true,
  "owner": {
    "firstname": "John",
    "lastname": "Eirik",
    "email": "johneirik@eksempel.no",
    "phone": "48165937",
    "companyname": "",
    "taxid": "",
    "type": "person",
    "addressline1": "Kasperudgata 48",
    "country": "NO",
    "state": "Ålesund",
    "postalcode": "4487",
    "city": "Ålesund"
  },
  "setAdmin": true,
  "admin": {
    "firstname": "Dag",
    "lastname": "Erik",
    "email": "dagerik@eksempel.no",
    "phone": "41283443",
    "companyname": "",
    "taxid": "",
    "type": "person",
    "addressline1": "Skihavnsvegen 93",
    "country": "NO",
    "state": "Oslo",
    "postalcode": "0347",
    "city": "Oslo"
  },
  "setTech": true,
  "tech": {
    "firstname": "Ragnar",
    "lastname": "Erikson",
    "email": "ragnarerikson@eksempel.no",
    "phone": "92648162",
    "companyname": "",
    "taxid": "",
    "type": "person",
    "addressline1": "Ørstadsvingen 34",
    "country": "NO",
    "state": "Kristiansand",
    "postalcode": "0182",
    "city": "Kristiansand"
  },
  "setBilling": true,
  "billing": {
    "firstname": "Hans",
    "lastname": "Petter",
    "email": "hanspetter@eksempel.no",
    "phone": "98328152",
    "companyname": "",
    "taxid": "",
    "type": "person",
    "addressline1": "Haugerstrandveien 56",
    "country": "NO",
    "state": "Gjøvik",
    "postalcode": "0671",
    "city": "Gjøvik"
  }
}
  • 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, the domain name
  • operation: string, can be "register" or "transfer"
  • prepare: boolean, if true, the client sets their name server, if false, Deploi sets their name server.
  • authcode: string, the authorization code for a domain transfer
  • setOwnerAndContacts: boolean, if false for register the contact details on the account will be used, for transfer the existing owner and contacts will be kept
  • setOwner: boolean, if true, the information from the owner provided will be used, if false, the information from the account will be used and set as administrative contact
  • owner: struct Contact, the legal owner of the domain
  • setAdmin: boolean, if true, the information from the administrative contact will be used, if false, the account information will be used and set as administrative contact
  • admin: struct Contact, the administrative contact of the domain
  • setTech: boolean, if true, the information from the technical contact will be used, if false, the account information will be used and set as technical contact
  • tech: struct Contact, the tech contact of the domain
  • setBilling: boolean, if true, the information from the billing contact will be used, if false, the account information will be used and the account will be set as billing contact
  • billing: struct Contact, the billing contact of the domain

struct Contact:

  • firstname: string, the first name of the contact
  • lastname: string, the last name of the contact
  • email: string, the email of the contact
  • phone: string, the phone number of the contact
  • companyname: string, the name of the company
  • taxid: number, the company registration number
  • type: string (enumeration), type of registration, can be set to either "person" or "company"
  • addressline1: string, if type: person, the person must use their home address, if type: company, the company must use the address of the company
  • country: string, the country part of the address
  • state: string, the state part of the address
  • postalcode: number, the postal code of the address
  • city: string, the city part of the address

Response:

{
  "success": true,
  "message": "Domain order processing.",
  "messageId": 35
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages

GetInvoices

Get invoices.

Request:

{
  "command": "GetInvoices",
  "token": "cebxfljqkzjyirqxvyxsbaxdq",
  "clientid": 15
}
  • command: "GetInvoices"
  • token: string, required, must be a valid authentication token
  • clientid: number, the ID of the client

Response:

{
  "success": true,
  "message": "",
  "messageId": 0,
  
  "invoices": [
     {
       "id": 4714,
       "date": "2022-12-18",
       "due": "2023-01-01",
       "amount": "960",
       "cancelled": false
       "paid": true
     }
   ]
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages
  • invoices: array of structures
    • id: number, the id of the invoice
    • date: string, date of the order
    • due: string, due date of invoice
    • amount: string, the amount as a string
    • cancelled: boolean, whether the invoice has been cancelled.
    • paid: boolean, whether the invoice has been paid.

Ping

Track availability status.

Request:

{
  "command": "Ping",
  "token": "cebxfljqkzjyirqxvyxsbaxdq"
}
  • command: "Ping"
  • token: string, required, must be a valid authentication token

Response:

{
  "success": true,
  "message": "pong"
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred

AddFirewallPrivateNetwork

Add private networks to the firewall.

Request:

{
   "command": "AddFirewallPrivateNetwork",
   "token": "cebxfljqkzjyirqxvyxsbaxdq",
   "id": 123,
   "network": "192.168.2.1/24"
}
  • command: string, "AddFirewallPrivateNetwork"
  • token: string, required, must be a valid authentication token
  • id: number, the ID of the firewall
  • network: string, the private network that get added to the firewall

Response:

{
  "success": true,
  "message": "",
  "messageId": 0
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages

GetBackupInfo

Get information and details on a backup plan.

Request:

{
  "command": "GetBackupInfo",
  "token": "cebxfljqkzjyirqxvyxsbaxdq",
  "planid": "Disk-8-2-1"
}
  • command: "GetBackupInfo"
  • token: string, required, must be a valid authentication token
  • planid: string, required, the ID of the plan

Response:

{
  "success": true,
  "message": "",
  "messageId": 0,
  
  "slots": [
    {
      "interval": {
        "from": "2024-01-01",
        "to": "2024-01-07"
      },
      "name": "2024-01-01 04:00:02",
      "present": true
    },
    {
      "interval": {
        "from": "2023-12-25",
        "to": "2023-12-31"
      },
      "name": "2024-12-27 04:00:03",
      "present": true
    },
    {
      "interval": {
        "from": "2023-12-18",
        "to": "2023-12-24"
      },
      "name": "2024-12-20 04:00:04",
      "present": true
    },
    {
      "interval": {
        "from": "2023-12-11",
        "to": "2023-12-17"
      },
      "name": "2024-12-13 04:00:05",
      "present": true
    },
    {
      "type": "permanent",
      "interval": {},
      "name": "2024-12-06 04:00:06",
      "present": true
    }
  ]
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages
  • slots, array of structures
  • type: string, can be interval or permanent
  • interval: structure
    • from: string, the date of the backup
    • to: string, the date the backup gets deleted
  • name: string, the name of the backup
  • present: boolean, if true, the backup is present, if false, the backup is deleted or not active

ChangeNameServers

Change name servers of the domain

Request:

{
  "command": "ChangeNameServers",
  "token": "cebxfljqkzjyirqxvyxsbaxdq",
  "domain": "progsbase.com",
  "defaults": false,
  "nameservers": [
    "example.com",
    ""
  ]
}
  • command: "ChangeNameServers"
  • token: string, required, must be a valid authentication token
  • domain: string, the domain name
  • defaults: boolean, if true, deploi's default name server is used, if false, the name server is set by the customer
  • nameservers: array, list of name servers specified by the customer

Response:

{
  "success": true,
  "message": "",
  "messageId": 74
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages

GetEmailAccountInfo

Get e-mail account information.

Request:

{
  "command": "GetEmailAccountInfo",
  "token": "cebxfljqkzjyirqxvyxsbaxdq",
  "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": "",
  "messageId": 0,
  
  "used": 0.2,
  "total": 10
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages
  • used: number, the used GB of storage
  • total: number, the available GB of storage

GetFirewalls

Get information about a firewall.

Request:

{
   "command": "GetFirewalls",
   "token": "cebxfljqkzjyirqxvyxsbaxdq",
   "clientid": 123
}
  • command: string, "GetFirewall"
  • token: string, required, must be a valid authentication token
  • clientid: number, the ID of the client
  • name: string, name of firewall
  • tb: number, terabytes of transfer per month
  • ipv4s: number, number of public IPv4 addresses to assign to the firewall
  • status: string, the status of the firewall

Response:

{
  "success": true,
  "message": "",
  "messageId": 0,
  
  "firewalls": [
    {
      "id": 675,
      "name": "Inductive Firewall",
      "tb": 1,
      "ipv4s": 1,
      "status": "active"
    }
  ],
  "
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages
  • firewalls: array of structures
    • id: number, the ID of the firewall service
    • name: string, name of the firewall
    • tb: number, the amount of terrabytes that the firewall can process
    • ipv4s: number, the amount of IPv4s
    • status: string, the status of the firewall, can either be "active" or "off"

GetDomainContacts

Get the domain contacts.

Request:

{
  "command": "GetDomainContacts",
  "token": "cebxfljqkzjyirqxvyxsbaxdq",
  "domain": "example.com"
}
  • command: string, "GetDomainContacts"
  • token: string, required, must be a valid authentication token
  • domain: string, the 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",
      "country": "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": "",
      "country": "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": "",
      "country": "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": "",
      "country": "NO",
      "addressLine1": "Main road 2",
      "addressLine2": "Flr. 1",
      "postalCode": "9387",
      "city": "Oslo",
      "phone": "(+47) 57395475",
      "email": "bobtest@test.com"
    }
  }
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • 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, the ID of the contact, automatically created upon registration by deploi
  • firstName: string, the firstname of the contact
  • lastName: string, the lastname of the contact
  • company: boolean, is company or person
  • companyName: string, the name of the company
  • companyID: string, the ID of the company
  • country: string, the country of the contact
  • addressLine1: string, the address of the contact
  • addressLine2: string, second address of the contact
  • postalCode: string, the postal code of the address
  • city: string, the city of the address
  • phone: string, the phone number of the contact
  • email: string, the email of the contact

GetAccountInfo

Get account information.

Request:

{
  "command": "GetAccountInfo",
  "token": "cebxfljqkzjyirqxvyxsbaxdq",
  "clientid": 123
}
  • command: "GetAccountInfo"
  • token: string, required, must be a valid authentication token
  • clientid: number, the ID of the client

Response:

{
  "success": true,
  "message": "",
  "messageId": 0,
  
  "accountInfo": {
      "id": 123,
      "firstname": "Bob",
      "lastname": "Jensen",
      "email": "bob@company.com",
      "phone": "1393927405",
      "type": "company",
      "companyname": "Company Ltd",
      "legalentityid": "53942340929",
      "addressline1": "Majorstreet 1",
      "addressline2": "",
      "city": "New Sidney",
      "postalcode": "23902",
      "countrycode": "US",
      "agreedtotac": true,
      "receiveinfo": true,
      "ehfinvoice": false,
      "autocreate": true
  }
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages
  • accountinfo: structure of account information
    • loggedin: boolean, whether the user is logged in or not
    • firstname: string, the first name of the contact
    • lastname: string, the last name of the contact
    • email: string, the email of the contact
    • phone: string, the phone number of the contact
    • type: string, either "company" or "person"
    • companyname: string, the name of the company
    • legalentityid: string, the ID of the legal entity
    • addressline1: string, if type: person, the person must use their home address, if type: company, the company must use the address of the company
    • addressline2: string, additional address information
    • city: string, the city part of the address
    • postalcode: string, the postal code of the address
    • countrycode: string, two letter country code, ISO 3166-1 alpha-2
    • agreedtotac: boolean, must be true, the agreement of the terms and conditions
    • receiveinfo: boolean, if true, the customer will receive newsletters
    • ehfinvoice: boolean, if true, customer will receive invoices using EHF
    • autocreate: boolean, whether the client can automatically provision services

GetDatabases

Get the databases.

Request:

{
  "command": "GetDatabases",
  "token": "cebxfljqkzjyirqxvyxsbaxdq",
  "clientid": 123
}
  • command: "GetDatabases"
  • token: string, required, must be a valid authentication token
  • clientid: number, the ID of the client that views the databases

Response:

{
   "success": true,
   "message": "",
   "messageId": 0,
   
  "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, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages
  • databases: array of structures
    • id: number, the ID from the agreement to the specific service delivered by Deploi.
    • 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

UpdateDomainContact

Update the contact of the domain.

Request:

{
  "command": "UpdateDomainContact",
  "token": "cebxfljqkzjyirqxvyxsbaxdq",
  "domain": "inductive.no",
  "contact": "admin",
  "info": {
    "id": "n-jm6375",
    "firstName": "Jonas",
    "lastName": "Sveinsen",
    "company": false,
    "companyName": "",
    "companyID": "",
    "country": "NO",
    "addressLine1": "Main road 2",
    "addressLine2": "Flr. 1",
    "postalCode": "9387",
    "city": "Oslo",
    "phone": "(+47) 57395475",
    "email": "bobtest@test.com"
  }
}
  • command: string, "UpdateDomainContact"
  • token: string, required, must be a valid authentication token
  • domain: string, domain name
  • contact: string, the type of contact
  • info: structure
    • id: string, the ID of the contact, automatically created upon registration by Deploi
    • firstName: string, the first name of the contact
    • lastName: string, the last name of the contact
    • company: boolean, whether the contact works for a company or not
    • companyName: string, the company the contact works for
    • companyID: string, the ID of the company
    • country: string, country code of the country the contact lives in
    • addressLine1: string, main address of the contact
    • addressLine2: string, second address or additional information
    • postalCode: string, the postal code of the address
    • city: the city of the address
    • phone: string, phone number of the contact
    • email, string, email address of the contact

Response:

{
  "success": true,
  "message": "Owner or contact change processing.",
  "messageId": 73,
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages

DeleteDomainRecord

Delete a domain record.

Request:

{
   "command":"DeleteDomainRecord",
   "token":"cebxfljqkzjyirqxvyxsbaxdq",
   "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"
  • domain: string, the domain name
  • host: string, the subdomain, API supports giving the whole domain
  • value: string, the value of the domain record, what the value should be is determined by the record type

Response:

{
  "success": true,
  "message": "",
  "messageId": 0
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • 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. The password of the user.
  • secondfactor: string, optional. Two factor code for two factor authentication.

Response:

{
  "success": true,
  "message": "Login successful.",
  "messageId": 0,
  
  "data": {
    "token": "cebxfljqkzjyirqxvyxsbaxdq",
    "clients": [
      {
         "id": 123,
         "name": "Company A"
      },
      {
         "id": 321,
         "name": "Company B"
      }
    ]
  }
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId, number, ID to lookup localized messages
  • data: structure, optional
    • token: string, login token to be passed with subsequent requests
    • clients: array of structures, the clients the user has access to
      • id: the ID of the user
      • name: the name of the company

GetEmailProducts

Get Email Products.

Request:

{
  "command": "GetEmailProducts",
  "token": "cebxfljqkzjyirqxvyxsbaxdq",
  "clientid": 123
}
  • command: "GetEmailProducts"
  • token: string, required, must be a valid authentication token
  • clientid: number, the ID of the client

Response:

{
  "success": true,
  "message": "",
  "messageId" 0,
  
  "emailProducts": [
    {
      "id": 517,
      "email": "test@deploi.com",
      "type": "account",
      "used": 26,
      "total": 74
    }
  ]
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages
  • emailProducts: array of structures
    • id: number, the ID of the agreement to the specific service delivered by Deploi.
    • 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": "cebxfljqkzjyirqxvyxsbaxdq",
  "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, "UpdateDomainRecord"
  • token: string, required, must be a valid authentication token
  • type: string, required, can be "A", "AAAA", "TXT", "MX", "CNAME", "SOA" and "SRV"
  • from: structure
    • host: string, required, the subdomain, API supports giving the whole domain
    • value: string, required, the value of the domain record, what the value should be is determined by the record type
    • options: structure
      • ttl: number, time to live in seconds
      • service: string, the symbolic name of the desired service
      • protocol: string, the type of protocol, can be "tcp", "udp" or "tls"
      • priority: number, 0 - 65535
      • weight: number, 0 - 65535
      • port: number, 0 - 65535
  • to: structure
    • host: string, required, the subdomain, API supports giving the whole domain
    • value: string, required, the value of the domain record, what the value should be is determined by the record type
    • options: structure
      • ttl: number, time to live in seconds
      • service: string, the symbolic name of the desired service
      • protocol: string, the type of protocol, can be "tcp", "udp" or "tls"
      • priority: number, 0 - 65535
      • weight: number, 0 - 65535
      • port: number, 0 - 65535

Response:

{
  "success": true,
  "message": "Record updated.",
  "messageId": 61
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages

GetKubernetesInfo

Get information about a Kubernetes account.

Request:

{
  "command": "GetKubernetesInfo",
  "token": "cebxfljqkzjyirqxvyxsbaxdq",
  "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, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages
  • 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": "cebxfljqkzjyirqxvyxsbaxdq",
  "type": "forge",
  "id": 123,
  "siteId: 1231231",
  "newDomain": "new.example.com"
}
  • command: "DuplicateWordpress"
  • token: string, required, must be a valid authentication token
  • type: string, the underlying system that delivers WordPress
  • id: number, the ID of the WordPress-installation
  • siteId: number, the ID of the WordPress site that gets duplicated
  • newDomain: string, the domain of the duplicated WordPress site

Response:

{
  "success": true,
  "message": "Duplicating site succeeded.",
  "messageId": 0
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages

GetServerInfo

List server information.

Request:

{
  "command": "GetServerInfo",
  "token": "cebxfljqkzjyirqxvyxsbaxdq",
  "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": "",
  "messageId": 0,
  
  "serverInfo": {
    "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, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages
  • serverInfo: structure
    • type: string, the underlying technology used to deliver the server
    • virtual: structure
      • mainip: string, the main IP address of the server
      • ram: number, the amount of GB in ram
      • cpu: number, the amount of processors
      • disks: array of structures
        • id: number, the ID of the disk service
        • type: string, type of disk, can either be "ssd" or "hdd"
        • size: number, the size of the disk in GB
      • suspended: boolean, if true, the server has been suspended
      • running: boolean, if true, the server is up and running
      • ips: array, list of IPs in the server
  • licenses: array of structures, licenses associated with the server

UpdateVirtualServer

Update a virtual server.

Request:

{
  "command": "UpdateVirtualServer",
  "token": "cebxfljqkzjyirqxvyxsbaxdq",
  "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, the ID of the disk
    • size: number, the new size of the disk in GB

Response:

{
  "success": true,
  "message": "Request to change server resources received.",
  "messageId": 63
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages

GetAlerts

Get alerts.

Request:

{
  "command": "GetAlerts",
  "token": "cebxfljqkzjyirqxvyxsbaxdq",
  "clientid": 123
}
  • command: "GetAlerts"
  • token: string, required, must be a valid authentication token
  • clientid: number, the ID of the client

Response:

{
  "success": true,
  "message": "",
  "messageId": 0,
  
  "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, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages
  • alerts: array
    • id: number, the ID of the alert service.
    • 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": "cebxfljqkzjyirqxvyxsbaxdq",
   "id": 123,
   "src-cidr": "192.0.2.0/8",
   "src-ip": "192.0.2.2",
   "src-port": 59375,
   "dst-ip": "10.0.1.5",
   "dst-port": 22
}


  • command: string, "AddFirewallRule"
  • token: string, required, must be a valid authentication token
  • id: number, the ID of the firewall
  • src-cidr: string, cidr of allowed addresses
  • src-ip: string, public IP to expose
  • src-port: number, port to expose on the public IP
  • dst-ip: string, private IP to expose on the public IP
  • dst-port: number, port to expose on the public port

Response:

{
  "success": true,
  "message": "",
  "messageId": 0
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, id used to lookup localized messages

GetWordpress

Get managed WordPress websites.

Request:

{
  "command": "GetWordpress",
  "token": "cebxfljqkzjyirqxvyxsbaxdq",
  "clientid": 123
}
  • command: "GetWordpress"
  • token: string, required, must be a valid authentication token
  • clientid: number, ID of the client

Response:

{
  "success": true,
  "message": "",
  "messageId": 0,
  
  "wordpresses": [
   {
     "type": "deploihosted",
     "id": 569,
     "domain": "example.cloud",
     "deploihosted": {
       "ram": 8,
       "cpu": 400,
       "disk": 20,
     },
     "forge": {
       "siteId": 0,
       "serverId": 0 
     }
   }
  ]
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, ID to lookup localized messages
  • wordpresses: array of structures
    • type: string, can be "deploihosted" or "forge"
    • id: number, the ID of the WordPress service
    • domain: string, the domain name
    • deploihosted: structure
      • ram: RAM quota for website
      • cpu: CPU-cent quota for website
      • disk: disk quota for website
    • forge: structure
      • siteId: number, The Forge site ID
      • serverId: number, Forge server ID

GetDomains

Get domain list for account.

Request:

{
  "command": "GetDomains",
  "token": "cebxfljqkzjyirqxvyxsbaxdq",
  "clientid": 123
}
  • command: "GetDomains"
  • token: string, required, must be a valid authentication token
  • clientid: number, the ID of the client

Response:

{
  "success": true,
  "message": "",
  "messageId": 0,
  
  "domains": [
    {
      "name": "inductive.no", 
      "id": "7",
      "status": "active",
      "registrationDate": "2015-06-01", 
      "expiryDate": "2023-06-01", 
      "nextDueDate": "2023-05-01"
    }
  ]
}
  • success: boolean, whether the request was successful or not.
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages
  • domains: array of structures
    • name: string, The domain name.
    • id: number, The deploi domain ID.
    • status: string, the status of the domain
    • registrationDate: date, Fetched from registrar.
    • expiryDate: date, Fetched from registrar.
    • nextDueDate: date, Fetched from deploi.

GetBackupPlans

List backup plans.

Request:

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

Response:

{
  "success": true,
  "message": "",
  "messageId": 0,
  
  "backupPlans": [
    {
      "id": "Disk-8-2-1",
      "location": 1,
      "daily": 0,
      "weekly": 5,
      "monthly": 0,
      "yearly": 0,
      "backupof": "Disk",
      "objectid": "8",
      "objectname": "Inductive Web Server Disk"
    }
  ]
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages.
  • backupPlans: array of structures.
    • id: string, ID of backup plan.
    • backupof: string, what is backed up.
    • objectid: string, ID of what is being backed up.
    • objectname: string, name of what is backed 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": "cebxfljqkzjyirqxvyxsbaxdq",
  "clientid": 123
}
  • command: "GetDisks"
  • token: string, required, must be a valid authentication token
  • clientid: number, the ID of the client that owns the disks

Response:

{
  "success": true,
  "message": "",
  "messageId": 0,
  
  "disks": [
    {
      "id": "hwe30nflge",
      "name": "Datadisk",
      "type": "SSD",
      "technology": "internal",
      "size": 42949672960
    }
  ]
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages
  • 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

AddFirewallPrivateNetworkConnector

Add private network connector to the firewall.

Request:

{
   "command": "AddFirewallPrivateNetworkConnector",
   "token": "cebxfljqkzjyirqxvyxsbaxdq",
   "id": 123,
   "network": "192.168.2.1/24",
   "local": "10.0.0.47",
   "remote": "10.0.0.204"
}
  • command: string, "AddFirewallPrivateNetworkConnector"
  • token: string, required, must be a valid authentication token
  • id: number, the ID of the firewall
  • network: string, the private network that get added to the firewall
  • local: string, local IP address of the connector
  • remote: string, IP address of the client

Response:

{
  "success": true,
  "message": "",
  "messageId": 0
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages

GetUserInfo

Get user information.

Request:

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

Response:

{
  "success": true,
  "message": "",
  "messageId": 0,
  
  "userInfo": {
      "id": 432,
      "firstname": "Bob",
      "lastname": "Jensen",
      "email": "bob@company.com",
      "twoFactorAuthentication": false,
      "accounts": [
         123,
         321
      ]
  }
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, id used to lookup localized messages
  • userInfo: structure
    • id: string, the ID of the user
    • firstname: string, first name of the user
    • lastname: string, last name of the user
    • email: string, email of the user
    • twoFactorAuthentication: boolean, if true, two factor verification is enabled
    • accounts: string, the ID of the accounts where the user has administrative rights

GetVirtualServerPrice

Get the price of a virtual server.

Request:

{
  "command": "GetVirtualServerPrice",
  "product" "server",
  "server": {
    "ram": 4,
    "cpu": 1,
    "disk": 10,
  }
}
  • command: "GetVirtualServerPrice"
  • 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, if success is false, a description of the problem that occurred
  • price: number, the price of the virtual server

UpdateAccountInfo

Update account information for an account.

Request:

{
  "command": "UpdateAccountInfo",
  "token": "cebxfljqkzjyirqxvyxsbaxdq",
  "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, required, the ID of the client
  • settype: boolean, required, if true, the client requests to change the type
  • type: string, required, can be set to either "company" or "person"
  • setcompanyname: boolean, required, if true, the client requests to change the company name
  • companyname: string, the name of the company
  • setlegalentityid: boolean, required, if true, the client requests to change the legal entity id
  • legalentityid: string, the legal entity ID of the company
  • setfirstname: boolean, required, if true, the client requests to change the first name
  • firstname: string, the first name of the contact
  • setlastname: boolean, required, if true, the client has changed the last name
  • lastname: string, the last name of the contact
  • setemail: boolean, required, if true, the client has changed the e-mail
  • email: string, the email of the contact
  • setphone: boolean, required, if true, the client has changed the phone number
  • phone: string, the phone number of the contact
  • setaddressline1: boolean, required, if true, the client has changed address line 1
  • addressline1: string, if type: person, the person must use their home address, if type: company, the company must use the address of the company
  • setaddressline2: boolean, required, if true, the client has changed address line 2
  • addressline2: string, additional address information
  • setpostalcode: boolean, required, if true, the client has changed the postal code
  • postalcode: string, the postal code of the address
  • setcity: boolean, required, if true, the client has changed the city
  • city: string, the city part of the address
  • setstate: boolean, required, if true, the client has changed the state
  • state: string, the state of the address
  • setcountrycode: boolean, required, if true, the client has changed the country code
  • countrycode: string, the countrycode part of the address
  • setEhfInvoice: boolean, required
  • ehfinvoice: boolean, required, if true, customer will receive invoices using EHF
  • setagreedtotac: boolean, required, if true, the client
  • agreedtotac: boolean, required, must be true, the agreement of the terms and conditions
  • setreceiveinfo: boolean, required
  • receiveinfo: boolean, required, if true, the customer will receive newsletters

Response:

{
  "success": true,
  "message": "The request has been received and is being processed.",
  "messageId": 65
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages

GetFirewallPrivateNetworks

Get the private networks of the firewall.

Request:

{
   "command": "GetFirewallPrivateNetworks",
   "token": "cebxfljqkzjyirqxvyxsbaxdq",
   "id": 123
}


  • command: string, "GetFirewallPrivateNetworks"
  • token: string, required, must be a valid authentication token
  • id: number, the ID of the firewall service

Response:

{
  "success": true,
  "message": "",
  "messageId": 0,
  
 "privateNetworks": [  
   {
     "network": "192.168.0.1/24",
     "name": "br0",
     "connectors": [
       {
         "name": "gre0_2",
         "local": "10.0.0.47",
         "remote": "10.0.0.202",
         "ip": "192.168.0.2"
       }
     ]
   },
   {
     "network": "192.168.1.1/24",
     "name": "br1",
     "connectors": [
       {
         "name": "gre1_2",
         "local": "10.0.0.47",
         "remote": "10.0.0.204",
         "ip": "192.168.1.2"
       }
     ]
   },
   {
     "network": "192.168.2.1/24",
     "name": "br2",
     "connectors": []
   }
 ]
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages
  • privateNetworks: array, list of the private networks
    • network: string, network IP range
    • name: name of the private network
    • connectors: array of structures
      • name: string, name of the connector
      • local: string, local IP address of the connector
      • remote: string, IP address of the client
      • ip: string, IP address on the virtual network

GetServers

List servers.

Request:

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

Response:

{
  "success": true,
  "message": "",
  "messageId": 0,
  
  "servers": [
    {
      "id": 2,
      "name": "testvps",
      "type": "virtual",
      "ram": 2,
      "cpu": 1,
      "disk": 10,
      "status": "active"
    }
  ]
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages
  • servers: array of structures
    • id: number, the ID of the server service
    • name: string, name of server at Deploi
    • type: type server: virtual or dedicated
    • ram: number, the amount of GB in ram
    • cpu: number, the amount of processors
    • disk: number, the size of the disk in GB
    • status: string, the status of the server, options are: "creating", "active" and "off"

DeleteFirewallRule

Delete a firewall rule.

Request:

{
   "command": "DeleteFirewallRule",
   "token": "cebxfljqkzjyirqxvyxsbaxdq",
   "id": 123,
   "src-cidr": "192.0.2.0/8",
   "src-ip": "192.0.2.2",
   "src-port": 59375,
   "dst-ip": "10.0.1.5",
   "dst-port": 22,
   "protocol": "tpc",
}


  • command: string, "DeleteFirewallRule"
  • token: string, required, must be a valid authentication token
  • id: number, the ID of the firewall service
  • src-cidr: string, CIDR of allowed addresses
  • src-ip: string, public IP to expose
  • src-port: number, port to expose on the public IP
  • dst-ip: string, private IP to expose on the public IP
  • dst-port: number, port to expose on the public port
  • protocol: string, tcp or udp

Response:

{
  "success": true,
  "message": "",
  "messageId": 1
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages

TransferDomain

Transfer a domain to Deploi.

Request:

{
  "command": "TransferDomain",
  "token": "cebxfljqkzjyirqxvyxsbaxdq",
  "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, the 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, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages

DeleteFirewallPrivateNetworkConnector

Delete private network connector from the firewall.

Request:

{
  "command": "DeleteFirewallPrivateNetworkConnector",
  "token": "cebxfljqkzjyirqxvyxsbaxdq",
  "id": 675,
  "network": "192.168.0.1/24",
  "connector": "gre0_2"
}
  • command: string, "DeleteFirewallPrivateNetworkConnector"
  • token: string, required, must be a valid authentication token
  • id: number, the ID of the firewall service
  • network: string, the private network connector that get deleted from the firewall
  • connector: string, the name of the virtual network port that get deleted

Response:

{
  "success": true,
  "message": "",
  "messageId": 0
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages

GetInvoiceInfo

Get invoice information.

Request:

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

Response:

{
  "success": true,
  "message": "",
  "messageId": 0,
  
  "invoiceInfo": {
    "date": "2022-12-18",
    "due": "2023-01-01",
    "amount": "960",
    "cancelled": false
    "paid": true,
    "lines": [
        {
            "description": "Server",
            "amount": "960"
        }
    ]
  }
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages
  • invoiceInfo: structure of invoice date and due date
    • 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
    • lines: array of structures
      • description: string, a description of the invoice
      • amount: number, the order line amount

DeleteFirewallPrivateNetwork

Delete private networks from the firewall.

Request:

{
   "command": "DeleteFirewallPrivateNetwork",
   "token": "cebxfljqkzjyirqxvyxsbaxdq",
   "id": 123,
   "network": "192.168.2.1/24"
}
  • command: string, "DeleteFirewallPrivateNetwork"
  • token: string, required, must be a valid authentication token
  • id: number, the ID of the firewall service
  • network: string, the private network that get deleted from the firewall

Response:

{
  "success": true,
  "message": "",
  "messageId": 0
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages

GetKubeConfig

Get Kubernetes config file for managed Kubernetes account.

Request:

{
  "command": "GetKubeConfig",
  "token": "cebxfljqkzjyirqxvyxsbaxdq",
  "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": "apiVersion: v1..."
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages
  • 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, the domain name

Response:

{
  "success": true,
  "message": "success",
  "messageId": 10,
  
  "available": false
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages
  • available: boolean, whether the domain is available or not

GetDomainRecords

Get the records of a domain.

Request:

{
  "command": "GetDomainRecords",
  "token": "cebxfljqkzjyirqxvyxsbaxdq",
  "domain": "example.com"
}
  • command: string, "GetDomainRecords"
  • token: string, required, must be a valid authentication token
  • domain: string, the 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, if success is false, a description of the problem that occurred
  • 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, the subdomain, API supports giving the whole domain
    • value: string, the value of the domain record, what the value should be is determined by the record type
    • options: structure
      • ttl: number, time to live in seconds
      • serviceSet: boolean, if false, no service is set, if true, service is set
      • service: string, the type of service, can be
      • protocolSet: boolean, if false, no protocol is set, if true, protocol is set
      • protocol: string, can be "tcp", "udp" or "tls"
      • priority: number, 0 - 65535
      • weight: number, 0 - 65535
      • port: number, 0 - 65535

OrderEmailService

Order an email service.

Request:

{
   "command": "OrderEmailService",
   "token": "cebxfljqkzjyirqxvyxsbaxdq",
   "clientid": 17,
   "emailtype": "transactional",
   "addresses": [
     "mail.example.com"
   ],
   "blocks": 1,
   "invoiceterm": "yearly"
}


  • command: string, "OrderEmailService"
  • token: string, required, must be a valid authentication token
  • clientid: number, the ID of the client
  • emailtype: string, type of email service
  • addresses: array, list of the mail addresses
  • blocks: number, 1 block equals sending of 10 000 emails per month
  • invoiceterm: string, defines the payment-intervals, can either be monthly or yearly

Response:

{
  "success": true,
  "message": "Email order processing.",
  "messageId": 71
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages

CreateFirewall

Create firewall.

Request:

{
   "command": "CreateFirewall",
   "token": "cebxfljqkzjyirqxvyxsbaxdq",
   "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, terabytes 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, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages

GetVPNs

Get VPN's.

Request:

{
  "command": "GetVPNs",
  "token": "cebxfljqkzjyirqxvyxsbaxdq",
  "clientid": 123
}
  • command: "GetVPNs"
  • token: string, required, must be a valid authentication token
  • clientid: ID of the client

Response:

{
  "success": true,
  "message": "",
  "messageId": 0,
  
  "vpns": [
   {
     "id": 565,
     "username": "username1",
     "ip": "192.0.2.14"
   }
  ]
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, ID to lookup localized messages
  • vpns: array of structures
    • id: number, the ID from the agreement to the specific service delivered by Deploi.
    • username: string, the username of the VPN account
    • ip: string, the IP address of the customer in the VPN

Logout

Log out of an account.

Request:

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

Response:

{
  "success": true,
  "message": "Logout successful."
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred

Register

Register a new account.

Request:

{
  "command": "Register",
  "firstname": "John",
  "lastname": "Reugers",
  "email": "example@mail.no",
  "phone": "98162249",
  "password": "mcyf3ZA5uQGfm7S",
  "type": "company",
  "companyname": "example company",
  "taxid": "39346459374947",
  "addressline1": "Gardveien 11",
  "addressline2": "",
  "city": "Oslo",
  "state": "",
  "postalcode": "0193",
  "country": "NO",
  "agreedtotac": true,
  "receiveinfo": false,
  "ehfinvoice": false
}

  • command: "Register"
  • firstname: string, required, the first name of the contact
  • lastname: string, required, the last name of the contact
  • email: string, required, must be valid email, the email of the contact
  • phone: string, required, must be valid phone number, the phone number of the contact
  • password: string, required, the password of the contact
  • 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
  • addressline1: string, required, if type: person, the person must use their home address, if type: company, the company must use the address of the company
  • addressline2: string, additional address information
  • city: string, required, the city part of the address
  • state: string, the state part of the address
  • postalcode: string, required, postal code of the address
  • country: two characters country code, required, must be valid country code
  • agreedtotac: boolean, required, must be true, the agreement of the terms and conditions
  • receiveinfo: boolean, required, if true, the customer will receive newsletters
  • ehfinvoice: boolean, required, if true, customer will receive invoices using EHF

Response:

{
  "success": true,
  "message": "Registration successful.",
  "messageId": 1
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages

GetWordpressInfo

Get information from managed WordPress websites.

Request:

{
  "command": "GetWordpressInfo",
  "token": "cebxfljqkzjyirqxvyxsbaxdq",
  "id": 748,
  "domain": "www.example.com",
  "siteid": 1946388
}
  • command: "GetWordpressInfo"
  • token: string, required, must be a valid authentication token
  • id: number, the ID of the WordPress service
  • domain: string, the domain name of the WordPress website
  • siteid: number, the ID of the WordPress website

Response:

{
  "success": true,
  "message": "",
  "messageId": 0,
  
  "wordpressInfo": {
    "SSL": true
  }
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages
  • wordpressInfo: structure
    • SSL: boolean, if true, SSL is active

SetEmailPassword

Set a password for the email account.

Request:

{
  "command": "SetEmailPassword",
  "token": "cebxfljqkzjyirqxvyxsbaxdq",
  "address": "John Undsets vei 15",
  "password": "Verystrongpassword765"
}
  • command: "SetEmailPassword"
  • token: string, required, must be a valid authentication token
  • address: string, required, the address of the user
  • password: string, the password of the email account

Response:

{
  "success": true,
  "message": "",
  "messageId": 0
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages

GetKubernetes

Get managed Kubernetes services.

Request:

{
  "command": "GetKubernetes",
  "token": "cebxfljqkzjyirqxvyxsbaxdq",
  "clientid": 123
}
  • command: "GetKubernetes"
  • token: string, required, must be a valid authentication token
  • clientid: number, the ID of the client

Response:

{
  "success": true,
  "message": "",
  "messageId": 0,
  
  "kubernetes": [
   {
     "id": 565,
     "ram": 8,
     "cpu": 4,
     "disk": 20
   }
  ]
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages
  • kubernetes: array of structures
    • id: number, the ID of the Kubernetes service
    • 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": "cebxfljqkzjyirqxvyxsbaxdq",
  "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": [],
  "username": "bob",
  "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
    • idSet: boolean, if true, the ID of the disk has been set
    • id: number, the ID of the disk
    • name: string, name of disk
    • size: number, size in GB
    • type: string, can be "ssd", "hdd"
    • backupSpecs, structure
      • profileIdSet: boolean
      • profileId: number, backup profile ID, where the different backup profiles contain premade backup intervals
      • spec: structure, containing specifications of intervals and location for backup
        • 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
        • loc: string, location alternatives, can either be 1 or 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"
  • username string, a username for a user with sudo-access
  • password: string, the password of the user
  • publickey: string, the public key that the user can login with
  • allowRemotePasswordLogin: boolean. Allow remote password login. Not recommended

Response:

{
  "success": true,
  "message": "Server ordered.",
  "messageId": 10
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, id used to lookup localized messages

GetFirewallRules

Get firewall rules.

Request:

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


  • command: string, "GetFirewallRules"
  • token: string, required, must be a valid authentication token
  • id: number, the ID of the firewall service

Response:

{
  "success": true,
  "message": "",
  "messageId": 0,
  
  {
  "firewallRules": 
  {
    "packets": 47019053,
    "bytes": 4822532426,
    "rules": [
      {
        "packets": 68,
        "bytes": 3464,
        "protocol": "tcp",
        "src-network": "0.0.0.0",
        "src-cidr": 0,
        "src-ip": "193.69.47.61",
        "src-port": 53746,
        "dst-ip": "10.0.0.202",
        "dst-port": 22
      },
      {
        "packets": 3,
        "bytes": 180,
        "protocol": "tcp",
        "src-network": "10.0.0.24",
        "src-cidr": 32,
        "src-ip": "10.0.0.47",
        "src-port": 53745,
        "dst-ip": "192.168.0.2",
        "dst-port": 22
      },
      {
        "packets": 0,
        "bytes": 0,
        "protocol": "tcp",
        "src-network": "10.0.0.23",
        "src-cidr": 32,
        "src-ip": "10.0.0.47",
        "src-port": 53747,
        "dst-ip": "192.168.0.2",
        "dst-port": 22
      }
    ]
  }
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages
  • firewallRules: structure
    • packets: number, the amount of packets processed by the firewall
    • bytes: number, the amount of bytes processed by the firewall
    • rules: array of structures
      • packets: number, the number of packets processed by the rule
      • bytes: number, the number of bytes processed by the rule
      • protocol: string, can either be for example "tcp" or "udp"
      • src-network: string, the rule will only be applied to this source network
      • src-cidr: number, the CIDR of the source network
      • src-ip: string, the IP address that will be translated from
      • src-port: number, the port that will be translated from
      • dst-ip: string, the IP address that will be translated to
      • dst-port: number, the port that will be translated to

AddDomainRecord

Add domain record.

Request:

{
  "command": "AddDomainRecord",
  "token": "cndgwxtdkrkjyzylruyixyuxm",
  "domain": "inductive.no",
  "type": "SRV",
  "host": "38.180.77.103",
  "value": "1.1.1.1",
  "options": {
    "ttl": 86400,
    "service": "Example Service",
    "protocol": "TCP",
    "priority": 42,
    "weight": "1000",
    "port": "443"
  }
}

  • command: string, "AddDomainRecord"
  • token: string, required, must be a valid authentication token
  • type: string, can be "A", "AAAA", "TXT", "MX", "CNAME", "SOA" and "SRV"
  • domain: string, the domain name
  • host: string, the subdomain, API supports giving the whole domain
  • value: string, the value of the domain record, what the value should be is determined by the record type
  • options: structure
    • ttl: number, time to live in seconds
    • service: string, the symbolic name of the desired service
    • protocol: string, can be "tcp", "udp" or "tls"
    • priority: number, 0 - 65535
    • weight: number, 0 - 65535
    • port: number, 0 - 65535

Response:

{
  "success": true,
  "message": "Record added.",
  "messageId": 57
}
  • success: boolean
  • message: string, if success is false, a description of the problem that occurred
  • messageId: number, ID used to lookup localized messages