Hetzner - DokuWiki

Robot Webservice/en

Preface

General

The interface is based on the HTTP protocol and can therefore be used with any HTTP library. A simple command-line client like curl can be used.

  • POST parameters are passed in the format "application/x-www-form-urlencoded"
  • The response format is JSON, by appending ".yaml" the response format is set to YAML
  • If the query was successful, the HTTP status code 200 OK is returned. When a new resource was created the HTTP status code is set to 201 CREATED
  • In case of an error, the appropriate HTTP error code is set
  • Authentication is done via HTTP Basic Auth
  • The webservice is accessible only via HTTPS
  • For the webservice a separate user can be created, you can find this option in your Robot webpanel under "Settings"

URL

https://robot-ws.your-server.de

Example JSON

curl -u login:password https://robot-ws.your-server.de/reset

Return value

[
  {
    "reset":
    {
      "server_ip": "123.123.123.123",
      "server_number": 321,
      "type": ["man","hw","sw"]
    }
  }
]

Example YAML

curl -u login:password https://robot-ws.your-server.de/reset.yaml

Return value

-
  reset: { server_ip: 123.123.123.123, server_number: 321, type: [man, hw, sw] }

Errors

Error format

error (Object)
status (Integer) HTTP Status Code
code (String) Specific error code
message (String) Specific error message

Example

{
  "error":
  {
    "status": 404,
    "code": "BOOT_NOT_AVAILABLE",
    "message": "No boot configuration available for this server"
  }
}

Error format invalid input

error (Object)
status (Integer) 400
code (String) INVALID_INPUT
message (String) invalid input
missing (Array) Array of missing input parameters or null
invalid (Array) Array of invalid input paramaters or null

Authentication error

When authentication fails the HTTP status "401 - Unauthorized" is returned.

Please note that the IP from which you attempt to access will be blocked for 10 minutes after 3 failed login attempts.

Request limit

When the request limit is reached the HTTP status "403 - Forbidden" is returned.

Error format request limit

error (Object)
status (Integer) 403
code (String) RATE_LIMIT_EXCEEDED
max_request (Integer) Maximum allowed requests
interval (Integer) Time interval in seconds
message (String) rate limit exceeded

Unavailability due to maintenance

If the webservice is unavailable due to maintenance the HTTP Status "503 - Service Unavailable" is returned.

Inhaltsverzeichnis

Server

GET /server

Description

Query data of all servers

Request limit

200 requests per 1 hour

Output

(Array)
server (Object)
server_ip (String) Server main IP address
server_number (Integer) Server id
server_name (String) Server name
product (String) Server product name
dc (String) Data centre number
traffic (String) Free traffic quota
flatrate (Boolean) Indicates if the server has a traffic flatrate (traffic overusage will not be charged but the bandwith will be reduced) or not (traffic overusage will be charged)
status (String) Server status ("ready" or "in process")
throttled (Boolean) Bandwidth limit status
cancelled (Boolean) Status of server cancellation
paid_until (String) Paid until date

Errors

Status Code Description
404 NOT_FOUND No server found

Example

curl -u login:password https://robot-ws.your-server.de/server
[
  {
    "server":{
      "server_ip":"123.123.123.123",
      "server_number":321,
      "server_name":"server1",
      "product":"DS 3000",
      "dc":"6",
      "traffic":"5 TB",
      "flatrate":true,
      "status":"ready",
      "throttled":true,
      "cancelled":false,
      "paid_until":"2010-09-02"
    }
  },
  {
    "server":{
      "server_ip":"123.123.123.124",
      "server_number":421,
      "server_name":"server2",
      "product":"X5",
      "dc":"5",
      "traffic":"2 TB",
      "flatrate":true,
      "status":"ready",
      "throttled":false,
      "cancelled":false,
      "paid_until":"2010-06-11"
    }
  }
]

GET /server/<server-ip>

Description

Query server data for a specific server

Request limit

200 requests per 1 hour

Output

server (Object)
server_ip (String) Server main IP address
server_number (Integer) Server id
server_name (String) Server name
product (String) Server product name
dc (String) Data centre number
traffic (String) Free traffic quota
flatrate (Boolean) Indicates if the server has a traffic flatrate (traffic overusage will not be charged but the bandwith will be reduced) or not (traffic overusage will be charged)
status (String) Server status ("ready" or "in process")
throttled (Boolean) Bandwidth limit status
cancelled (Boolean) Status of server cancellation
paid_until (String) Paid until date
ip (Array) Array of assigned single IP addresses
subnet (Array) Array of assigned subnets
reset (Boolean) Flag of reset system availability
rescue (Boolean) Flag of Rescue System availability
vnc (Boolean) Flag of VNC installation availability
windows (Boolean) Flag of Windows installation availability
plesk (Boolean) Flag of Plesk installation availability
cpanel (Boolean) Flag of cPanel installation availability
wol (Boolean) Flag of Wake On Lan availability

Errors

Status Code Description
404 SERVER_NOT_FOUND Server with IP <server-ip> not found

Example

curl -u login:password https://robot-ws.your-server.de/server/123.123.123.123
{
  "server":{
    "server_ip":" 123.132.123.123",
    "server_number":321,
    "server_name":"server1",
    "product":"EQ 8",
    "dc":"11",
    "traffic":"5 TB",
    "flatrate":true,
    "status":"ready",
    "throttled":false,
    "cancelled":false,
    "paid_until":"2010-08-04",
    "ip":[
      "124.124.124.124"
    ],
    "subnet":[
      {
        "ip":"2a01:4f8:111:4221::",
        "mask":"64"
      }
    ],
    "reset":true,
    "rescue":true,
    "vnc":true,
    "windows":true,
    "plesk":true,
    "cpanel":true,
    "wol":true
  }
}

POST /server/<server-ip>

Description

Update server name for a specific server

Request limit

200 requests per 1 hour

Input

Name Description
server_name Server name

Output

server (Object)
server_ip (String) Server main IP address
server_number (Integer) Server id
server_name (String) Server name
product (String) Server product name
dc (String) Data centre number
traffic (String) Free traffic quota
flatrate (Boolean) Indicates if the server has a traffic flatrate (traffic overusage will not be charged but the bandwith will be reduced) or not (traffic overusage will be charged)
status (String) Server status ("ready" or "in process")
throttled (Boolean) Bandwidth limit status
cancelled (Boolean) Status of server cancellation
paid_until (String) Paid until date
ip (Array) Array of assigned single IP addresses
subnet (Array) Array of assigned subnets
reset (Boolean) Flag of reset system availability
rescue (Boolean) Flag of Rescue System availability
vnc (Boolean) Flag of VNC installation availability
windows (Boolean) Flag of Windows installation availability
plesk (Boolean) Flag of Plesk installation availability
cpanel (Boolean) Flag of cPanel installation availability
wol (Boolean) Flag of Wake On Lan availability

Errors

Status Code Description
400 INVALID_INPUT Invalid input parameters
404 SERVER_NOT_FOUND Server with IP <server-ip> not found

Example

curl -u login:password https://robot-ws.your-server.de/server/123.123.123.123 -d server_name=server1
{
  "server":{
    "server_ip":" 123.132.123.123",
    "server_number":321,
    "server_name":"server1",
    "product":"EQ 8",
    "dc":"11",
    "traffic":"5 TB",
    "flatrate":true,
    "status":"ready",
    "throttled":false,
    "cancelled":false,
    "paid_until":"2010-08-04",
    "ip":[
      "124.124.124.124"
    ],
    "subnet":[
      {
        "ip":"2a01:4f8:111:4221::",
        "mask":"64"
      }
    ],
    "reset":true,
    "rescue":true,
    "vnc":true,
    "windows":true,
    "plesk":true,
    "cpanel":true,
    "wol":true
  }
}

GET /server/<server-ip>/cancellation

Description

Query cancellation data for a server

Request limit

200 requests per 1 hour

Output

cancellation (Object)
server_ip (String) Server main IP address
server_number (Integer) Server id
server_name (String) Server name
earliest_cancellation_date (String) Earliest possible cancellation date, format yyyy-MM-dd
cancelled (Boolean) Status of server cancellation
cancellation_date (String) Cancellation date if cancellation active, format yyyy-MM-dd, otherwise null
cancellation_reason (Array|String) Array of possible cancellation reasons or cancellation reason if cancellation is active

Errors

Status Code Description
404 SERVER_NOT_FOUND Server with IP <server-ip> not found

Example

curl -u login:password https://robot-ws.your-server.de/server/123.123.123.123/cancellation
{
  "cancellation":{
    "server_ip":" 123.132.123.123",
    "server_number":321,
    "server_name":"server1",
    "earliest_cancellation_date":"2014-04-15",
    "cancelled":false,
    "cancellation_date":null,
    "cancellation_reason":[
      "Upgrade to a new server",
      "Dissatisfied with the hardware",
      "Dissatisfied with the support",
      "Dissatisfied with the network",
      "Dissatisfied with the IP\/subnet allocation",
      "Dissatisfied with the Robot webinterface",
      "Dissatisfied with the official Terms and Conditions",
      "Server no longer necessary due to project ending",
      "Server too expensive"
    ]
  }
}

POST /server/<server-ip>/cancellation

Description

Cancel a server

Request limit

200 requests per 1 hour

Input

Name Description
cancellation_date Date to which the server should be cancelled
cancellation_reason Cancellation reason, optional

Output

cancellation (Object)
server_ip (String) Server main IP address
server_number (Integer) Server id
server_name (String) Server name
earliest_cancellation_date (String) Earliest possible cancellation date, format yyyy-MM-dd
cancelled (Boolean) 1
cancellation_date (String) Cancellation date, format yyyy-MM-dd
cancellation_reason (String) Cancellation reason or null

Errors

Status Code Description
404 SERVER_NOT_FOUND Server with IP <server-ip> not found
409 CONFLICT The server is already cancelled
409 CONFLICT Cancellation of server is not possible because of active transfer
500 INTERNAL_ERROR Cancellation failed due to an internal error

Example

curl -u login:password https://robot-ws.your-server.de/server/123.123.123.123/cancellation -d 'cancellation_date=2014-04-15'
{
  "cancellation":{
    "server_ip":" 123.132.123.123",
    "server_number":321,
    "server_name":"server1",
    "earliest_cancellation_date":"2014-04-15",
    "cancelled":true,
    "cancellation_date":"2014-04-15",
    "cancellation_reason":null
  }
}

DELETE /server/<server-ip>/cancellation

Description

Withdraw a server cancellation

Request limit

200 requests per 1 hour

Output

No output

Errors

Status Code Description
404 SERVER_NOT_FOUND Server with IP <server-ip> not found
409 CONFLICT The cancellation cannot be revoked
500 INTERNAL_ERROR Cancellation revokation failed due to an internal error

Example

curl -u login:password https://robot-ws.your-server.de/server/123.123.123.123/cancellation -X DELETE

IP

GET /ip

Description

Query list of all single IP addresses

Request limit

5000 requests per 1 hour

Input (optional)

Name Description
server_ip Server main IP address, show only ip addresses assigned to this server

Output

(Array)
ip (Object)
ip (String) IP address
server_ip (String) Servers main IP address
server_number (Integer) Server id
locked (Boolean) Status of locking
separate_mac (String) Separate MAC address, if not set null
traffic_warnings (Boolean) True if traffic warnings are enabled
traffic_hourly (Integer) Hourly traffic limit in MB
traffic_daily (Integer) Daily traffic limit in MB
traffic_monthly (Integer) Monthly traffic limit in GB

Errors

Status Code Description
404 NOT_FOUND No IP addresses found

Example

curl -u login:password https://robot-ws.your-server.de/ip
[
  {
    "ip":{
      "ip":"123.123.123.123",
      "server_ip":"123.123.123.123",
      "server_number":321,
      "locked":false,
      "separate_mac":null,
      "traffic_warnings":false,
      "traffic_hourly":50,
      "traffic_daily":50,
      "traffic_monthly":8
    }
  },
  {
    "ip":{
      "ip":"124.124.124.124",
      "server_ip":"123.123.123.123",
      "server_number":321,
      "locked":false,
      "separate_mac":null,
      "traffic_warnings":false,
      "traffic_hourly":200,
      "traffic_daily":2000,
      "traffic_monthly":20
    }
  }
]

GET /ip/<ip>

Description

Query data for a specific IP address

Request limit

5000 requests per 1 hour

Output

ip (Object)
ip (String) IP address
server_ip (String) Servers main IP address
server_number (Integer) Server id
locked (Boolean) Status of locking
separate_mac (String) Separate MAC address, if not set null
traffic_warnings (Boolean) True if traffic warnings are enabled
traffic_hourly (Integer) Hourly traffic limit in MB
traffic_daily (Integer) Daily traffic limit in MB
traffic_monthly (Integer) Monthly traffic limit in GB

Errors

Status Code Description
404 IP_NOT_FOUND No IP addresses found

Example

curl -u login:password https://robot-ws.your-server.de/ip/123.123.123.123
{
  "ip":{
    "ip":"123.123.123.123",
    "server_ip":"123.123.123.123",
    "server_number":321,
    "locked":false,
    "separate_mac":null,
    "traffic_warnings":false,
    "traffic_hourly":50,
    "traffic_daily":50,
    "traffic_monthly":8
  }
}

POST /ip/<ip>

Description

Update traffic warning options for an IP address

Request limit

5000 requests per 1 hour

Input

Name Description
traffic_warnings Enable/disable traffic warnings (true,false)
traffic_hourly Hourly traffic limit in MB
traffic_daily Daily traffic limit in MB
traffic_monthly Monthly traffic limit in GB

Output

ip (Object)
ip (String) IP address
server_ip (String) Servers main IP address
server_number (Integer) Server id
locked (Boolean) Status of locking
separate_mac (String) Separate MAC address, if not set null
traffic_warnings (Boolean) True if traffic warnings are enabled
traffic_hourly (Integer) Hourly traffic limit in MB
traffic_daily (Integer) Daily traffic limit in MB
traffic_monthly (Integer) Monthly traffic limit in GB

Errors

Status Code Description
400 INVALID_INPUT Invalid input parameters
404 IP_NOT_FOUND No IP addresses found
500 TRAFFIC_WARNING_UPDATE_FAILED Updating traffic warning options failed due to an internal error

Example

curl -u login:password https://robot-ws.your-server.de/ip/123.123.123.123 -d traffic_warnings=true
{
  "ip":{
    "ip":"123.123.123.123",
    "server_ip":"123.123.123.123",
    "server_number":321,
    "locked":false,
    "separate_mac":null,
    "traffic_warnings":true,
    "traffic_hourly":50,
    "traffic_daily":50,
    "traffic_monthly":8
  }
}

GET /ip/<ip>/mac

Description

Query if it is possible to set a separate mac address. Returns the MAC address if it is set.

Request limit

5000 requests per 1 hour

Output

mac (Object)
ip (String) IP address
mac (String) MAC address

Errors

Status Code Description
404 IP_NOT_FOUND IP address not found
404 MAC_NOT_FOUND There is no separate MAC address set
404 MAC_NOT_AVAILABLE For this ip address it is not possible to set a separate mac address

Example

curl -u login:password https://robot-ws.your-server.de/ip/123.123.123.123/mac
{
  "mac":{
    "ip":"123.123.123.123",
    "mac":"00:21:85:62:3e:9c"
  }
}

PUT /ip/<ip>/mac

Description

Generate a separate mac address

Request limit

10 requests per 1 hour

Input

No input

Output

mac (Object)
ip (String) IP address
mac (String) MAC address

Errors

Status Code Description
404 IP_NOT_FOUND IP address not found
404 MAC_NOT_AVAILABLE For this ip address it is not possible to set a separate mac address
409 MAC_ALREADY_SET There is already a separate MAC address set
500 MAC_FAILED The separate mac address could not be generated due to an internal error

Example

curl -u login:password https://robot-ws.your-server.de/ip/123.123.123.123/mac  -X PUT
{
  "mac":{
    "ip":"123.123.123.123",
    "mac":"00:21:85:62:3e:9c"
  }
}

DELETE /ip/<ip>/mac

Description

Remove a separate MAC address

Request limit

10 requests per 1 hour

Input

No input

Output

mac (Object)
ip (String) IP address
mac (String) null

Errors

Status Code Description
404 IP_NOT_FOUND IP address not found
404 MAC_NOT_AVAILABLE For this ip address it is not possible to set a separate mac address
409 MAC_NOT_FOUND There is no separate MAC address set
500 MAC_FAILED The separate MAC address could not be removed due to an internal error

Example

curl -u login:password https://robot-ws.your-server.de/ip/123.123.123.123/mac -X DELETE
{
  "mac":{
    "ip":"123.123.123.123",
    "mac":null
  }
}

Subnet

GET /subnet

Description

Query list of all subnets

Request limit

5000 requests per 1 hour

Input (optional)

Name Description
server_ip Server main IP address, show only subnets assigned to this server

Output

(Array)
subnet (Object)
ip (String) IP address
mask (Integer) Subnet mask in CIDR notation
gateway (String) Subnet gateway
server_ip (String) Servers main IP address
server_number (Integer) Server id
failover (Boolean) True if subnet is a failover subnet
locked (Boolean) Status of locking
traffic_warnings (Boolean) True if traffic warnings are enabled
traffic_hourly (Integer) Hourly traffic limit in MB
traffic_daily (Integer) Daily traffic limit in MB
traffic_monthly (Integer) Monthly traffic limit in GB

Errors

Status Code Description
404 NOT_FOUND No subnets found

Example

curl -u login:password https://robot-ws.your-server.de/subnet
[
  {
    "subnet":{
      "ip":"123.123.123.123",
      "mask":29,
      "gateway":"123.123.123.123",
      "server_ip":"88.198.123.123",
      "server_number":321,
      "failover":false,
      "locked":false,
      "traffic_warnings":false,
      "traffic_hourly":100,
      "traffic_daily":500,
      "traffic_monthly":2
    }
  },
  {
    "subnet":{
      "ip":"178.63.123.123",
      "mask":25,
      "gateway":"178.63.123.124",
      "server_ip":null,
      "server_number":421,
      "failover":false,
      "locked":false,
      "traffic_warnings":false,
      "traffic_hourly":100,
      "traffic_daily":500,
      "traffic_monthly":2
    }
  }
]

GET /subnet/<net-ip>

Description

Query data of a specific subnet

Request limit

5000 requests per 1 hour

Output

subnet (Object)
ip (String) IP address
mask (Integer) Subnet mask in CIDR notation
gateway (String) Subnet gateway
server_ip (String) Servers main IP address
server_number (Integer) Server id
failover (Boolean) True if subnet is a failover subnet
locked (Boolean) Status of locking
traffic_warnings (Boolean) True if traffic warnings are enabled
traffic_hourly (Integer) Hourly traffic limit in MB
traffic_daily (Integer) Daily traffic limit in MB
traffic_monthly (Integer) Monthly traffic limit in GB

Errors

Status Code Description
404 SUBNET_NOT_FOUND Subnet not found

Example

curl -u login:password https://robot-ws.your-server.de/subnet/123.123.123.123
{
  "subnet":{
    "ip":"123.123.123.123",
    "mask":29,
    "gateway":"123.123.123.123",
    "server_ip":"88.198.123.123",
    "server_number":321,
    "failover":false,
    "locked":false,
    "traffic_warnings":false,
    "traffic_hourly":100,
    "traffic_daily":500,
    "traffic_monthly":2
  }
}

POST /subnet/<net-ip>

Description

Update traffic warning options for an subnet

Request limit

5000 requests per 1 hour

Input

Name Description
traffic_warnings Enable/disable traffic warnings (true,false)
traffic_hourly Hourly traffic limit in MB
traffic_daily Daily traffic limit in MB
traffic_monthly Monthly traffic limit in GB

Output

subnet (Object)
ip (String) IP address
mask (Integer) Subnet mask in CIDR notation
gateway (String) Subnet gateway
server_ip (String) Servers main IP address
server_number (Integer) Server id
failover (Boolean) True if subnet is a failover subnet
locked (Boolean) Status of locking
traffic_warnings (Boolean) True if traffic warnings are enabled
traffic_hourly (Integer) Hourly traffic limit in MB
traffic_daily (Integer) Daily traffic limit in MB
traffic_monthly (Integer) Monthly traffic limit in GB

Errors

Status Code Description
400 INVALID_INPUT Invalid input parameters
404 SUBNET_NOT_FOUND Subnet not found
500 TRAFFIC_WARNING_UPDATE_FAILED Updating traffic warning options failed due to an internal error

Example

curl -u login:password https://robot-ws.your-server.de/subnet/123.123.123.123 -d traffic_warnings=true
{
  "subnet":{
    "ip":"123.123.123.123",
    "mask":29,
    "gateway":"123.123.123.123",
    "server_ip":"88.198.123.123",
    "server_number":321,
    "failover":false,
    "locked":false,
    "traffic_warnings":true,
    "traffic_hourly":100,
    "traffic_daily":500,
    "traffic_monthly":2
  }
}

GET /subnet/<net-ip>/mac

Description

Query if it is possible to set a separate mac address.

Request limit

5000 requests per 1 hour

Output

mac (Object)
ip (String) IP address
mask (Integer) Subnet mask in CIDR notation
mac (String) MAC address
possible_mac (Object) Possible MAC addresses

Errors

Status Code Description
404 SUBNET_NOT_FOUND Subnet not found
404 MAC_NOT_AVAILABLE For this ip address it is not possible to set a separate mac address

Example

curl -u login:password https://robot-ws.your-server.de/subnet/2a01:4f8:111:4221::/mac
{
  "mac":{
    "ip":"2a01:4f8:111:4221::",
    "mask":64,
    "mac":"00:21:85:62:3e:9c",
    "possible_mac":{
      "123.123.123.123":"00:21:85:62:3e:9c",
      "123.123.123.124":"00:21:85:62:3e:9d"
    }
  }
}

PUT /subnet/<net-ip>/mac

Description

Generate a separate mac address

Request limit

10 requests per 1 hour

Input

Name Description
mac Target MAC address

Output

mac (Object)
ip (String) IP address
mask (Integer) Subnet mask in CIDR notation
mac (String) MAC address
possible_mac (Object) Possible MAC addresses

Errors

Status Code Description
404 SUBNET_NOT_FOUND Subnet not found
404 MAC_NOT_AVAILABLE For this ip address it is not possible to set a separate mac address
500 MAC_FAILED The separate mac address could not be generated due to an internal error

Example

curl -u login:password https://robot-ws.your-server.de/subnet/2a01:4f8:111:4221::/mac -X PUT -d 'mac=00:21:85:62:3e:9d'
{
  "mac":{
    "ip":"2a01:4f8:111:4221::",
    "mask":64,
    "mac":"00:21:85:62:3e:9d",
    "possible_mac":{
      "123.123.123.123":"00:21:85:62:3e:9c",
      "123.123.123.124":"00:21:85:62:3e:9d"
    }
  }
}

DELETE /subnet/<net-ip>/mac

Description

Remove a separate MAC address and set it to the default value (The MAC address of the servers main IP address).

Request limit

10 requests per 1 hour

Input

No input

Output

mac (Object)
ip (String) IP address
mask (Integer) Subnet mask in CIDR notation
mac (String) MAC address
possible_mac (Object) Possible MAC addresses

Errors

Status Code Description
404 SUBNET_NOT_FOUND Subnet not found
404 MAC_NOT_AVAILABLE For this ip address it is not possible to set a separate mac address
500 MAC_FAILED The separate MAC address could not be removed due to an internal error

Example

curl -u login:password https://robot-ws.your-server.de/subnet/2a01:4f8:111:4221::/mac -X DELETE
{
  "mac":{
    "ip":"2a01:4f8:111:4221::",
    "mask":64,
    "mac":"00:21:85:62:3e:9c",
    "possible_mac":{
      "123.123.123.123":"00:21:85:62:3e:9c",
      "123.123.123.124":"00:21:85:62:3e:9d"
    }
  }
}

Reset

GET /reset

Description

Query reset options for all servers (excluding vServers)

Request limit

500 requests per 1 hour

Output

(Array)
reset (Object)
server_ip (String) Server main IP address
server_number (Integer) Server id
type (Array) Available reset options

Errors

Status Code Description
404 NOT_FOUND No servers with reset option found

Example

curl -u login:password https://robot-ws.your-server.de/reset
[
  {
    "reset":{
      "server_ip":"123.123.123.123",
      "server_number":321,
      "type":[
        "man",
        "hw",
        "sw"
      ]
    }
  },
  {
    "reset":{
      "server_ip":"111.111.111.111",
      "server_number":111,
      "type":[
        "man"
      ]
    }
  }
]

GET /reset/<server-ip>

Description

Query reset options for a specific server (excluding vServers)

Request limit

500 requests per 1 hour

Output

reset (Object)
server_ip (String) Server main IP address
server_number (Integer) Server id
type (Array) Available reset options

Errors

Status Code Description
404 SERVER_NOT_FOUND Server with IP <server-ip> not found
404 RESET_NOT_AVAILABLE The server has no reset option

Example

curl -u login:password https://robot-ws.your-server.de/reset/123.123.123.123
{
  "reset":{
    "server_ip":"123.123.123.123",
    "server_number":321,
    "type":[
      "man",
      "hw",
      "sw"
    ]
  }
}

POST /reset/<server-ip>

Description

Execute reset on specific server (excluding vServers)

Request limit

50 requests per 1 hour

Input

Name Description
type Reset type to execute

Output

reset (Object)
server_ip (String) Server main IP address
server_number (Integer) Server id
type (String) Executed reset option

Errors

Status Code Description
400 INVALID_INPUT Invalid input parameters
404 SERVER_NOT_FOUND Server with IP <server-ip> not found
404 RESET_NOT_AVAILABLE The server has no reset option
409 RESET_MANUAL_ACTIVE There is already a running manual reset
500 RESET_FAILED Resetting failed due to an internal error

Example

curl -u login:password https://robot-ws.your-server.de/reset/123.123.123.123 -d type=hw
{
  "reset":{
    "server_ip":"123.123.123.123",
    "type":"hw"
  }
}

Failover

IMPORTANT: For the proper use of the failover IP it must be configured (not ordered) on all servers it can be switched to, regardless of where it is currently routed to.

GET /failover

Description

Query failover data for all servers

Request limit

100 requests per 1 hour

Output

(Array)
failover (Object)
ip (String) Failover net address
netmask (String) Failover netmask
server_ip (String) Main IP of related server
server_number (Integer) Server id
active_server_ip (String) Main IP of current destination server

Errors

Status Code Description
404 NOT_FOUND No failover IP addresses found

Example

curl -u login:password https://robot-ws.your-server.de/failover
[
  {
    "failover":{
      "ip":"123.123.123.123",
      "netmask":"255.255.255.255",
      "server_ip":"78.46.1.93",
      "server_number":321,
      "active_server_ip":"78.46.1.93"
    }
  }
]

GET /failover/<failover-ip>

Description

Query specific failover IP address data

Request limit

100 requests per 1 hour

Output

failover (Object)
ip (String) Failover net address
netmask (String) Failover netmask
server_ip (String) Main IP of related server
server_number (Integer) Server id
active_server_ip (String) Main IP of current destination server

Errors

Status Code Description
404 NOT_FOUND Failover IP address not found

Example

curl -u login:password https://robot-ws.your-server.de/failover/123.123.123.123
{
  "failover":{
    "ip":"123.123.123.123",
    "netmask":"255.255.255.255",
    "server_ip":"78.46.1.93",
    "server_number":321,
    "active_server_ip":"78.46.1.93"
  }
}

POST /failover/<failover-ip>

Description

Switch routing of failover IP address to another server

Request limit

50 requests per 1 hour

Input

Name Description
active_server_ip Main IP address of server where the failover ip should be routed to

Output

failover (Object)
ip (String) Failover net address
netmask (String) Failover netmask
server_ip (String) Main IP of related server
server_number (Integer) Server id
active_server_ip (String) Main IP of current destination server

Errors

Status Code Description
400 INVALID_INPUT Invalid input parameters
404 NOT_FOUND Failover IP address not found
404 FAILOVER_NEW_SERVER_NOT_FOUND Destination server not found
409 FAILOVER_ALREADY_ROUTED The failover IP address is already routed to the selected server
409 FAILOVER_LOCKED Switching the failover IP address is blocked due to another active request
500 FAILOVER_FAILED Due to an internal error switching of the failover IP address failed
500 FAILOVER_NOT_COMPLETE Due to an internal error switching of the failover IP address failed

Example

curl -u login:password https://robot-ws.your-server.de/failover/123.123.123.123 -d active_server_ip=124.124.124.124
{
  "failover":{
    "ip":"123.123.123.123",
    "netmask":"255.255.255.255",
    "server_ip":"78.46.1.93",
    "server_number":321,
    "active_server_ip":"124.124.124.124"
  }
}

Wake on LAN

GET /wol/<server-ip>

Description

Query Wake On LAN data

Request limit

500 requests per 1 hour

Output

wol (Object)
server_ip (String) Server main IP address
server_number (Integer) Server id

Errors

Status Code Description
404 SERVER_NOT_FOUND Server not found
404 WOL_NOT_AVAILABLE Wake On LAN is not available on this server

Example

curl -u login:password https://robot-ws.your-server.de/wol/123.123.123.123
{
  "wol":{
    "server_ip":"123.123.123.123",
    "server_number":321
  }
}

POST /wol/<server-ip>

Description

Send Wake On LAN packet to server

Request limit

10 requests per 1 hour

Input

server_ip Server main IP address

Output

wol (Object)
server_ip (String) Server main IP address
server_number (Integer) Server id

Errors

Status Code Description
404 SERVER_NOT_FOUND Server not found
404 WOL_NOT_AVAILABLE Wake On LAN is not available on this server
500 WOL_FAILED Sending Wake On LAN packet failed due to an internal error

Example

curl -u login:password https://robot-ws.your-server.de/wol/123.123.123.123 -d foo
{
  "wol":{
    "server_ip":"123.123.123.123",
    "server_number":321
  }
}

Boot configuration

GET /boot/<server-ip>

Description

Query the current boot configuration status for a server. There can be only one configuration active at any time for one server.

Request limit

500 requests per 1 hour

Output

boot (Object)
rescue (Object) see #GET_.2Fboot.2F.3Cserver-ip.3E.2Frescue
linux (Object) see #GET_.2Fboot.2F.3Cserver-ip.3E.2Flinux
vnc (Object) see #GET_.2Fboot.2F.3Cserver-ip.3E.2Fvnc
windows (Object) see #GET_.2Fboot.2F.3Cserver-ip.3E.2Fwindows
plesk (Object) see #GET_.2Fboot.2F.3Cserver-ip.3E.2Fplesk
cpanel (Object) see #GET_.2Fboot.2F.3Cserver-ip.3E.2Fcpanel

Errors

Status Code Description
404 SERVER_NOT_FOUND Server with IP <server-ip> not found
404 BOOT_NOT_AVAILABLE No boot configuration available for this server

Example

curl -u login:password https://robot-ws.your-server.de/boot/123.123.123.123
{
  "boot":{
    "rescue":{
      "server_ip":"123.123.123.123",
      "server_number":321,
      "os":[
        "linux",
        "freebsd",
        "vkvm"
      ],
      "arch":[
        64,
        32
      ],
      "active":false,
      "password":null,
      "authorized_key":[
        
      ],
      "host_key":[
        
      ]
    },
    "linux":{
      "server_ip":"123.123.123.123",
      "server_number":321,
      "dist":[
        "CentOS 5.5 minimal",
        "Debian 7.8 minimal"
      ],
      "arch":[
        64,
        32
      ],
      "lang":[
        "en"
      ],
      "active":false,
      "password":null,
      "authorized_key":[
        
      ],
      "host_key":[
        
      ]
    },
    "vnc":{
      "server_ip":"123.123.123.123",
      "server_number":321,
      "dist":[
        "centOS-5.0",
        "Fedora-6",
        "openSUSE-10.2"
      ],
      "arch":[
        64,
        32
      ],
      "lang":[
        "de_DE",
        "en_US"
      ],
      "active":false,
      "password":null
    },
    "windows":{
      "server_ip":"123.123.123.123",
      "server_number":321,
      "dist":null,
      "lang":null,
      "active":false,
      "password":null
    },
    "plesk":{
      "server_ip":"123.123.123.123",
      "server_number":321,
      "dist":[
        "CentOS 5.4 minimal",
        "Debian 7.8 minimal"
      ],
      "arch":[
        64,
        32
      ],
      "lang":[
        "en",
        "de"
      ],
      "active":false,
      "password":null,
      "hostname":null
    },
    "cpanel":{
      "server_ip":"123.123.123.123",
      "server_number":321,
      "dist":[
        "CentOS 5.6 + cPanel"
      ],
      "arch":[
        64
      ],
      "lang":[
        "en"
      ],
      "active":false,
      "password":null,
      "hostname":null
    }
  }
}

GET /boot/<server-ip>/rescue

Description

Query boot options for the Rescue System

Request limit

500 requests per 1 hour

Output

rescue (Object)
server_ip (String) Server main IP address
server_number (Integer) Server id
os (Array|String) Array of available operating systems or the active operating system
arch (Array|Integer) Array of available architectures or the active architecture
active (Boolean) Current Rescue System status
password (String) Current Rescue System root password or null
authorized_key (Array) Authorized public SSH keys
host_key (Array) Host keys

Errors

Status Code Description
404 SERVER_NOT_FOUND Server with IP <server-ip> not found
404 BOOT_NOT_AVAILABLE No boot configuration available for this server

Example

curl -u login:password https://robot-ws.your-server.de/boot/123.123.123.123/rescue
{
  "rescue":{
    "server_ip":"123.123.123.123",
    "server_number":321,
    "os":[
      "linux",
      "freebsd",
      "vkvm"
    ],
    "arch":[
      64,
      32
    ],
    "active":false,
    "password":null,
    "authorized_key":[
      
    ],
    "host_key":[
      
    ]
  }
}

POST /boot/<server-ip>/rescue

Description

Activate Rescue System

Request limit

500 requests per 1 hour

Input

Name Description
os Operating System
arch Architecture

Output

rescue (Object)
server_ip (String) Server main IP address
server_number (Integer) Server id
os (String) Operating system
arch (Integer) Architecture
active (Boolean) true
password (String) Rescue System root password
authorized_key (Array) Authorized public SSH keys
host_key (Array) Host keys

Errors

Status Code Description
400 INVALID_INPUT Invalid input parameters
404 SERVER_NOT_FOUND Server with IP <server-ip> not found
404 BOOT_NOT_AVAILABLE No boot configuration available for this server
409 BOOT_ALREADY_ENABLED The Rescue System is already enabled for this server
409 BOOT_BLOCKED There is already another boot configuration enabled (linux, VNC, windows, cPanel or Plesk)
500 BOOT_ACTIVATION_FAILED Activation of the Rescue System failed due to an internal error

Example

curl -u login:password https://robot-ws.your-server.de/boot/123.123.123.123/rescue -d 'os=linux&arch=32'
{
  "rescue":{
    "server_ip":"123.123.123.123",
    "server_number":321,
    "os":"linux",
    "arch":32,
    "active":true,
    "password":"jEt0dtUvomlyOwRr",
    "authorized_key":[
      
    ],
    "host_key":[
      
    ]
  }
}

DELETE /boot/<server-ip>/rescue

Description

Deactivate Rescue System

Request limit

500 requests per 1 hour

Output

rescue (Object)
server_ip (String) Server main IP address
server_number (Integer) Server id
os (Array) Array of available operating systems
arch (Array) Array of available architectures
active (Boolean) false
password (String) null
authorized_key (Array) Authorized public SSH keys
host_key (Array) Host keys

Errors

Status Code Description
404 SERVER_NOT_FOUND Server with IP <server-ip> not found
404 BOOT_NOT_AVAILABLE No boot configuration available for this server
500 BOOT_DEACTIVATION_FAILED Deactivation of the Rescue System failed due to an internal error

Example

curl -u login:password https://robot-ws.your-server.de/boot/123.123.123.123/rescue -X DELETE
{
  "rescue":{
    "server_ip":"123.123.123.123",
    "server_number":321,
    "os":[
      "linux",
      "freebsd",
      "vkvm"
    ],
    "arch":[
      64,
      32
    ],
    "active":false,
    "password":null,
    "authorized_key":[
      
    ],
    "host_key":[
      
    ]
  }
}

GET /boot/<server-ip>/rescue/last

Description

Show data of last rescue activation

Request limit

500 requests per 1 hour

Output

rescue (Object)
server_ip (String) Server main IP address
server_number (Integer) Server id
os (String) Operating system
arch (Integer) Architecture
active (Boolean) Current Rescue System status
password (String) Current Rescue System root password or null
authorized_key (Array) Authorized public SSH keys
host_key (Array) Host keys

Errors

Status Code Description
404 SERVER_NOT_FOUND Server with IP <server-ip> not found
404 BOOT_NOT_AVAILABLE No boot configuration available for this server

Example

curl -u login:password https://robot-ws.your-server.de/boot/123.123.123.123/rescue/last
{
  "rescue":{
    "server_ip":"123.123.123.123",
    "server_number":321,
    "os":"linux",
    "arch":64,
    "active":false,
    "password":null,
    "authorized_key":[
      
    ],
    "host_key":[
      
    ]
  }
}

GET /boot/<server-ip>/linux

Description

Query boot options for the linux installation

Request limit

500 requests per 1 hour

Output

linux (Object)
server_ip (String) Server main IP address
server_number (Integer) Server id
dist (Array|String) Array of available distributions or the active distributon
arch (Array|Integer) Array of available architectures or the active architecture
lang (Array|String) Array of available languages or the active language
active (Boolean) Current linux installation status
password (String) Current linux installation password or null
authorized_key (Array) Authorized public SSH keys
host_key (Array) Host keys

Errors

Status Code Description
404 SERVER_NOT_FOUND Server with IP <server-ip> not found
404 BOOT_NOT_AVAILABLE No boot configuration available for this server

Example

curl -u login:password https://robot-ws.your-server.de/boot/123.123.123.123/linux
{
  "linux":{
    "server_ip":"123.123.123.123",
    "server_number":321,
    "dist":[
      "CentOS 5.5 minimal",
      "Debian 7.8 minimal"
    ],
    "arch":[
      64,
      32
    ],
    "lang":[
      "en"
    ],
    "active":false,
    "password":null,
    "authorized_key":[
      
    ],
    "host_key":[
      
    ]
  }
}

POST /boot/<server-ip>/linux

Description

Activate linux installation

Request limit

500 requests per 1 hour

Input

Name Description
dist Distribution
arch Architecture
lang Language

Output

linux (Object)
server_ip (String) Server main IP address
server_number (Integer) Server id
dist (String) Distribution
arch (Integer) Architecture
lang (String) Language
active (Boolean) true
password (String) linux installation password
authorized_key (Array) Authorized public SSH keys
host_key (Array) Host keys

Errors

Status Code Description
400 INVALID_INPUT Invalid input parameters
404 SERVER_NOT_FOUND Server with IP <server-ip> not found
404 BOOT_NOT_AVAILABLE No boot configuration available for this server
409 BOOT_ALREADY_ENABLED The linux installation is already enabled for this server
409 BOOT_BLOCKED There is already another boot configuration enabled (rescue, VNC, windows, cPanel or Plesk)
500 BOOT_ACTIVATION_FAILED Activation of the linux installation failed due to an internal error

Example

curl -u login:password https://robot-ws.your-server.de/boot/123.123.123.123/linux -d 'dist=CentOS 5.5 minimal&arch=32&lang=en'
{
  "linux":{
    "server_ip":"123.123.123.123",
    "server_number":321,
    "dist":"CentOS 5.5 minimal",
    "arch":32,
    "lang":"en",
    "active":true,
    "password":"jEt0dtUvomlyOwRr",
    "authorized_key":[
      
    ],
    "host_key":[
      
    ]
  }
}

DELETE /boot/<server-ip>/linux

Description

Deactivate linux installation

Request limit

500 requests per 1 hour

Output

linux (Object)
server_ip (String) Server main IP address
server_number (Integer) Server id
dist (Array) Array of available distributions
arch (Array) Array of available architectures
lang (Array) Array of available languages
active (Boolean) false
password (String) null
authorized_key (Array) Authorized public SSH keys
host_key (Array) Host keys

Errors

Status Code Description
404 SERVER_NOT_FOUND Server with IP <server-ip> not found
404 BOOT_NOT_AVAILABLE No boot configuration available for this server
500 BOOT_DEACTIVATION_FAILED Deactivation of the linux installation failed due to an internal error

Example

curl -u login:password https://robot-ws.your-server.de/boot/123.123.123.123/linux -X DELETE
{
  "linux":{
    "server_ip":"123.123.123.123",
    "server_number":321,
    "dist":[
      "CentOS 5.5 minimal",
      "Debian 7.8 minimal"
    ],
    "arch":[
      64,
      32
    ],
    "lang":[
      "en"
    ],
    "active":false,
    "password":null,
    "authorized_key":[
      
    ],
    "host_key":[
      
    ]
  }
}

GET /boot/<server-ip>/linux/last

Description

Show data of last linux installation

Request limit

500 requests per 1 hour

Output

linux (Object)
server_ip (String) Server main IP address
server_number (Integer) Server id
dist (String) Distribution
arch (Integer) Architecture
lang (String) Language
active (Boolean) Linux installation status
password (String) Linux installation password or null
authorized_key (Array) Authorized public SSH keys
host_key (Array) Host keys

Errors

Status Code Description
404 SERVER_NOT_FOUND Server with IP <server-ip> not found
404 BOOT_NOT_AVAILABLE No boot configuration available for this server

Example

curl -u login:password https://robot-ws.your-server.de/boot/123.123.123.123/linux/last
{
  "linux":{
    "server_ip":"123.123.123.123",
    "server_number":321,
    "dist":"CentOS 5.5 minimal",
    "arch":32,
    "lang":"en",
    "active":true,
    "password":"jEt0dtUvomlyOwRr",
    "authorized_key":[
      
    ],
    "host_key":[
      
    ]
  }
}

GET /boot/<server-ip>/vnc

Description

Query boot options for the VNC installation

Request limit

500 requests per 1 hour

Output

vnc (Object)
server_ip (String) Server main IP address
server_number (Integer) Server id
dist (Array|String) Array of available distributions or the active distributon
arch (Array|Integer) Array of available architectures or the active architecture
lang (Array|String) Array of available languages or the active language
active (Boolean) Current VNC installation status
password (String) Current VNC installation password or null

Errors

Status Code Description
404 SERVER_NOT_FOUND Server with IP <server-ip> not found
404 BOOT_NOT_AVAILABLE No boot configuration available for this server

Example

curl -u login:password https://robot-ws.your-server.de/boot/123.123.123.123/vnc
{
  "vnc":{
    "server_ip":"123.123.123.123",
    "server_number":321,
    "dist":[
      "centOS-5.0",
      "Fedora-6",
      "openSUSE-10.2"
    ],
    "arch":[
      64,
      32
    ],
    "lang":[
      "de_DE",
      "en_US"
    ],
    "active":false,
    "password":null
  }
}

POST /boot/<server-ip>/vnc

Description

Activate VNC installation

Request limit

500 requests per 1 hour

Input

Name Description
dist Distribution
arch Architecture
lang Language

Output

vnc (Object)
server_ip (String) Server main IP address
server_number (Integer) Server id
dist (String) Distribution
arch (Integer) Architecture
lang (String) Language
active (Boolean) true
password (String) VNC installation password

Errors

Status Code Description
400 INVALID_INPUT Invalid input parameters
404 SERVER_NOT_FOUND Server with IP <server-ip> not found
404 BOOT_NOT_AVAILABLE No boot configuration available for this server
409 BOOT_ALREADY_ENABLED The VNC installation is already enabled for this server
409 BOOT_BLOCKED There is already another boot configuration enabled (Rescue System, linux, windows, cPanel or Plesk)
500 BOOT_ACTIVATION_FAILED Activation of the VNC installation failed due to an internal error

Example

 curl -u login:password https://robot-ws.your-server.de/boot/123.123.123.123/vnc -d 'dist=centOS-5.0&arch=32&lang=en_US'
{
  "vnc":{
    "server_ip":"123.123.123.123",
    "server_number":321,
    "dist":"centOS-5.0",
    "arch":32,
    "lang":"en_US",
    "active":true,
    "password":"jEt0dtUvomlyOwRr"
  }
}

DELETE /boot/<server-ip>/vnc

Description

Deactivate VNC installation

Request limit

500 requests per 1 hour

Output

vnc (Object)
server_ip (String) Server main IP address
server_number (Integer) Server id
dist (Array) Array of available distributions
arch (Array) Array of available architectures
lang (Array) Array of available languages
active (Boolean) false
password (String) null

Errors

Status Code Description
404 SERVER_NOT_FOUND Server with IP <server-ip> not found
404 BOOT_NOT_AVAILABLE No boot configuration available for this server
500 BOOT_DEACTIVATION_FAILED Deactivation of the VNC installation failed due to an internal error

Example

curl -u login:password https://robot-ws.your-server.de/boot/123.123.123.123/vnc -X DELETE
{
  "vnc":{
    "server_ip":"123.123.123.123",
    "server_number":321,
    "dist":[
      "centOS-5.0",
      "Fedora-6",
      "openSUSE-10.2"
    ],
    "arch":[
      64,
      32
    ],
    "lang":[
      "de_DE",
      "en_US"
    ],
    "active":false,
    "password":null
  }
}

GET /boot/<server-ip>/windows

Description

Query boot options for the windows installation

Request limit

500 requests per 1 hour

Output

windows (Object)
server_ip (String) Server main IP address
server_number (Integer) Server id
dist (Array|String) Array of available distributions or the active distributon
arch (Array|Integer) Array of available architectures or the active architecture
lang (Array|String) Array of available languages or the active language
active (Boolean) Current windows installation status
password (String) Current windows installation password or null

Errors

Status Code Description
404 SERVER_NOT_FOUND Server with IP <server-ip> not found
404 BOOT_NOT_AVAILABLE No boot configuration available for this server

Example

curl -u login:password https://robot-ws.your-server.de/boot/123.123.123.123/windows
{
  "windows":{
    "server_ip":"123.123.123.123",
    "server_number":321,
    "dist":[
      "standard"
    ],
    "lang":[
      "en",
      "de"
    ],
    "active":false,
    "password":null
  }
}

POST /boot/<server-ip>/windows

Description

Activate Windows installation. You need to order the Windows addon for the server via the Robot webpanel first. After a reboot the installation will start and all data on the server will be deleted.

Request limit

500 requests per 1 hour

Input

Name Description
lang Language

Output

windows (Object)
server_ip (String) Server main IP address
server_number (Integer) Server id
dist (String) Distribution
arch (Integer) Architecture
lang (String) Language
active (Boolean) true
password (String) Windows installation password

Errors

Status Code Description
400 INVALID_INPUT Invalid input parameters
404 SERVER_NOT_FOUND Server with IP <server-ip> not found
404 BOOT_NOT_AVAILABLE No boot configuration available for this server
404 WINDOWS_MISSING_ADDON No windows addon found
409 BOOT_ALREADY_ENABLED The windows installation is already enabled for this server
409 BOOT_BLOCKED There is already an other boot configuration enabled (Rescue System, linux, VNC, cPanel or Plesk
500 BOOT_ACTIVATION_FAILED Activation of the windows installation failed due to an internal error

Example

curl -u login:password https://robot-ws.your-server.de/boot/123.123.123.123/windows -d 'lang=en'
{
  "windows":{
    "server_ip":"123.123.123.123",
    "server_number":321,
    "dist":"standard",
    "lang":"en",
    "active":true,
    "password":"jEt0dtUvomlyOwRr"
  }
}

DELETE /boot/<server-ip>/windows

Description

Deactivate Windows installation

Request limit

500 requests per 1 hour

Output

windows (Object)
server_ip (String) Server main IP address
server_number (Integer) Server id
dist (Array) Array of available distributions
arch (Array) Array of available architectures
lang (Array) Array of available languages
active (Boolean) false
password (String) null

Errors

Status Code Description
404 SERVER_NOT_FOUND Server with IP <server-ip> not found
404 BOOT_NOT_AVAILABLE No boot configuration available for this server
500 BOOT_DEACTIVATION_FAILED Deactivation of the windows installation failed due to an internal error

Example

curl -u login:password https://robot-ws.your-server.de/boot/123.123.123.123/windows -X DELETE
{
  "windows":{
    "server_ip":"123.123.123.123",
    "server_number":321,
    "dist":[
      "standard"
    ],
    "lang":[
      "en",
      "de"
    ],
    "active":false,
    "password":null
  }
}

GET /boot/<server-ip>/plesk

Description

Query boot options for the Plesk installation

Request limit

500 requests per 1 hour

Output

plesk (Object)
server_ip (String) Server main IP address
server_number (Integer) Server id
dist (Array|String) Array of available distributions or the active distributon
arch (Array|Integer) Array of available architectures or the active architecture
lang (Array|String) Array of available languages or the active language
active (Boolean) Current Plesk installation status
password (String) Current Plesk installation password or null
hostname (String) Current Plesk installation hostname or null

Errors

Status Code Description
404 SERVER_NOT_FOUND Server with IP <server-ip> not found
404 BOOT_NOT_AVAILABLE No boot configuration available for this server

Example

curl -u login:password https://robot-ws.your-server.de/boot/123.123.123.123/plesk
{
  "plesk":{
    "server_ip":"123.123.123.123",
    "server_number":321,
    "dist":[
      "CentOS 5.4 minimal",
      "Debian 7.8 minimal"
    ],
    "arch":[
      64,
      32
    ],
    "lang":[
      "en",
      "de"
    ],
    "active":false,
    "password":null,
    "hostname":null
  }
}

POST /boot/<server-ip>/plesk

Description

Activate Plesk installation

Request limit

500 requests per 1 hour

Input

Name Description
dist Distribution
arch Architecture
lang Language
hostname Hostname

Output

plesk (Object)
server_ip (String) Server main IP address
server_number (Integer) Server id
dist (String) Distribution
arch (Integer) Architecture
lang (String) Language
active (Boolean) true
password (String) Plesk installation password
hostname (String) Plesk installation hostname

Errors

Status Code Description
400 INVALID_INPUT Invalid input parameters
404 SERVER_NOT_FOUND Server with IP <server-ip> not found
404 BOOT_NOT_AVAILABLE No boot configuration available for this server
404 PLESK_MISSING_ADDON No plesk addon found
409 BOOT_ALREADY_ENABLED The linux installation is already enabled for this server
409 BOOT_BLOCKED There is already an other boot configuration enabled (Rescue System, linux, VNC, cPanel or windows)
500 BOOT_ACTIVATION_FAILED Activation of the Plesk installation failed due to an internal error

Example

curl -u login:password https://robot-ws.your-server.de/boot.yaml/123.123.123.123/plesk -d 'dist=CentOS 5.4 minimal&arch=32&lang=de&hostname=plesk.testen.de'
{
  "plesk":{
    "server_ip":"213.239.217.200",
    "server_number":321,
    "dist":"CentOS 5.4 minimal",
    "arch":32,
    "lang":"de",
    "active":true,
    "password":"jEt0dtUvomlyOwRr",
    "hostname":"plesk.testen.de"
  }
}

DELETE /boot/<server-ip>/plesk

Description

Deactivate Plesk installation

Request limit

500 requests per 1 hour

Output

plesk (Object)
server_ip (String) Server main IP address
server_number (Integer) Server id
dist (Array) Array of available distributions
arch (Array) Array of available architectures
lang (Array) Array of available languages
active (Boolean) false
password (String) null
hostname (String) null

Errors

Status Code Description
404 SERVER_NOT_FOUND Server with IP <server-ip> not found
404 BOOT_NOT_AVAILABLE No boot configuration available for this server
500 BOOT_DEACTIVATION_FAILED Deactivation of the Plesk installation failed due to an internal error

Example

curl -u login:password https://robot-ws.your-server.de/boot/123.123.123.123/plesk -X DELETE
{
  "plesk":{
    "server_ip":"123.123.123.123",
    "server_number":321,
    "dist":[
      "CentOS 5.4 minimal",
      "Debian 7.8 minimal"
    ],
    "arch":[
      64,
      32
    ],
    "lang":[
      "en",
      "de"
    ],
    "active":false,
    "password":null,
    "hostname":null
  }
}

GET /boot/<server-ip>/cpanel

Description

Query boot options for the cPanel installation

Request limit

500 requests per 1 hour

Output

cpanel (Object)
server_ip (String) Server main IP address
server_number (Integer) Server id
dist (Array|String) Array of available distributions or the active distributon
arch (Array|Integer) Array of available architectures or the active architecture
lang (Array|String) Array of available languages or the active language
active (Boolean) Current cPanel installation status
password (String) Current cPanel installation password or null
hostname (String) Current cPanel installation hostname or null

Errors

Status Code Description
404 SERVER_NOT_FOUND Server with IP <server-ip> not found
404 BOOT_NOT_AVAILABLE No boot configuration available for this server

Example

curl -u login:password https://robot-ws.your-server.de/boot/123.123.123.123/cpanel
{
  "cpanel":{
    "server_ip":"123.123.123.123",
    "server_number":321,
    "dist":[
      "CentOS 5.6 + cPanel"
    ],
    "arch":[
      64
    ],
    "lang":[
      "en"
    ],
    "active":false,
    "password":null,
    "hostname":null
  }
}

POST /boot/<server-ip>/cpanel

Description

Activate cPanel installation

Request limit

500 requests per 1 hour

Input

Name Description
dist Distribution
arch Architecture
lang Language
hostname Hostname

Output

cpanel (Object)
server_ip (String) Server main IP address
server_number (Integer) Server id
dist (String) Distribution
arch (Integer) Architecture
lang (String) Language
active (Boolean) true
password (String) cPanel installation password
hostname (String) cPanel installation hostname

Errors

Status Code Description
400 INVALID_INPUT Invalid input parameters
404 SERVER_NOT_FOUND Server with IP <server-ip> not found
404 BOOT_NOT_AVAILABLE No boot configuration available for this server
404 CPANEL_MISSING_ADDON No cPanel addon found
409 BOOT_ALREADY_ENABLED The cPanel installation is already enabled for this server
409 BOOT_BLOCKED There is already an other boot configuration enabled (Rescue System, linux, VNC, Plesk or windows)
500 BOOT_ACTIVATION_FAILED Activation of the cPanel installation failed due to an internal error

Example

curl -u login:password https://robot-ws.your-server.de/boot/123.123.123.123/cpanel -d 'dist=CentOS 5.6 + cPanel&arch=64&lang=en&hostname=cpanel.testen.de'
{
  "cpanel":{
    "server_ip":"123.123.123.123",
    "server_number":321,
    "dist":"CentOS 5.6 + cPanel",
    "arch":64,
    "lang":"en",
    "active":true,
    "password":"ie8Nhz6R",
    "hostname":"cpanel.testen.de"
  }
}

DELETE /boot/<server-ip>/cpanel

Description

Deactivate cPanel installation

Request limit

500 requests per 1 hour

Output

plesk (Object)
server_ip (String) Server main IP address
server_number (Integer) Server id
dist (Array) Array of available distributions
arch (Array) Array of available architectures
lang (Array) Array of available languages
active (Boolean) false
password (String) null
hostname (String) null

Errors

Status Code Description
404 SERVER_NOT_FOUND Server with IP <server-ip> not found
404 BOOT_NOT_AVAILABLE No boot configuration available for this server
500 BOOT_DEACTIVATION_FAILED Deactivation of the cPanel installation failed due to an internal error

Example

curl -u login:password https://robot-ws.your-server.de/boot/123.123.123.123/cpanel -X DELETE
{
  "cpanel":{
    "server_ip":"123.123.123.123",
    "server_number":321,
    "dist":[
      "CentOS 5.6 + cPanel"
    ],
    "arch":[
      64
    ],
    "lang":[
      "en"
    ],
    "active":false,
    "password":null,
    "hostname":null
  }
}

Reverse DNS

GET /rdns

Description

Query all rDNS entries

Request limit

500 requests per 1 hour

Input (optional)

Name Description
server_ip Server main IP address, show only reverse DNS entries assigned to this server

Output

(Array)
rdns (Object)
ip (String) IP address
ptr (String) PTR record

Errors

Status Code Description
404 NOT_FOUND No reverse DNS entries found

Example

curl -u login:password https://robot-ws.your-server.de/rdns
[
  {
    "rdns":{
      "ip":"123.123.123.123",
      "ptr":"testen.de"
    }
  },
  {
    "rdns":{
      "ip":"124.124.124.124",
      "ptr":"your-server.de"
    }
  }
]

GET /rdns/<ip>

Description

Query the current reverse DNS entry for one IP address

Request limit

500 requests per 1 hour

Output

rdns (Object)
ip (String) IP address
ptr (String) PTR record

Errors

Status Code Description
404 IP_NOT_FOUND The IP address <ip> was not found
404 RDNS_NOT_FOUND The IP address <ip> has no reverse DNS entry yet

Example

curl -u login:password https://robot-ws.your-server.de/rdns/123.123.123.123
{
  "rdns":{
    "ip":"123.123.123.123",
    "ptr":"testen.de"
  }
}

PUT /rdns/<ip>

Description

Create new reverse DNS entry for one IP address. When the reverse DNS entry was successfully created the status code 201 CREATED is returned.

Request limit

500 requests per 1 hour

Input

Name Description
ptr PTR record

Output

rdns (Object)
ip (String) IP address
ptr (String) PTR record

Errors

Status Code Description
400 INVALID_INPUT Invalid input parameters
404 IP_NOT_FOUND The IP address <ip> was not found
409 RDNS_ALREADY_EXISTS There is already an existing reverse DNS entry
500 RDNS_CREATE_FAILED Creating the reverse DNS entry failed due to an internal error

Example

curl -u login:password https://robot-ws.your-server.de/rdns/123.123.123.123 -d ptr=testen.de -X PUT
{
  "rdns":{
    "ip":"123.123.123.123",
    "ptr":"testen.de"
  }
}

POST /rdns/<ip>

Description

Update/create reverse DNS entry for one IP. When the reverse DNS entry was successfully created the status code is set to 201 created, on succesfull update the status code is 200 OK.

Request limit

500 requests per 1 hour

Input

Name Description
ptr PTR record

Output

rdns (Object)
ip (String) IP address
ptr (String) PTR record

Errors

Status Code Description
400 INVALID_INPUT Invalid input parameters
404 IP_NOT_FOUND The IP address <ip> was not found
500 RDNS_CREATE_FAILED Creating the reverse DNS entry failed due to an internal error
500 RDNS_UPDATE_FAILED Updating the reverse DNS entry failed due to an internal error

Example

curl -u login:password https://robot-ws.your-server.de/rdns/123.123.123.123 -d ptr=testen.de
{
  "rdns":{
    "ip":"123.123.123.123",
    "ptr":"testen.de"
  }
}

DELETE /rdns/<ip>

Description

Delete reverse DNS entry for one IP

Request limit

500 requests per 1 hour

Output

No output

Errors

Status Code Description
404 IP_NOT_FOUND The IP address <ip> was not found
500 RDNS_DELETE_FAILED Deleting the reverse DNS entry failed due to an internal error
500 RDNS_UPDATE_FAILED Updating the reverse DNS entry failed due to an internal error

Example

curl -u login:password https://robot-ws.your-server.de/rdns/123.123.123.123 -X DELETE

Traffic

POST /traffic

Description

Query traffic data of IPs and subnets. There are three query types: "day", "month" and "year". With "day" you can query hourly aggregated traffic data within a day, with "month" you can query daily aggregated data within a month, and with "year" it is possible to get monthly aggregated data within a year.

Please note that the traffic data is only available when the specified hour, day or month has already passed.

The interval is given with the parameters "from" and "to" with the following syntax:

* Query type "day":   [YYYY]-[MM]-[DD]T[H], e.g. 2010-09-01T00
* Query type "month": [YYYY]-[MM]-[DD], e.g. 2010-09-01
* Query type "year":  [YYYY]-[MM], e.g. 2010-09

Using query type "day" you must specify a date combined with a time value (hour). The hour value is separated from the date with the letter "T". Using query type "month" you must specify a date without the time value. With query type "year" you must additionally leave out the day value.

IP addresses or subnets without traffic data are omitted in the response.

Request limit

50 requests per 1 hour

Input

Name Description
ip[] One or more IP addresses
subnet[] One or more subnet addresses
from Date/Time from
to Date/Time to
type Type of traffic query

Output

traffic (Object)
type (String) Traffic query type
from (String) Date/Time from
to (String) Date/Time to
data (Object)
<IP address> (Object)
in (Number) traffic in (GB)
out (Number) traffic out (GB)
sum (Number) traffic sum (GB)

Errors

Status Code Description
400 INVALID_INPUT Invalid input parameters
404 NOT_FOUND No IP addresses or subnets found
500 INTERNAL_ERROR Traffic query failed due to an internal error

Example

Query traffic data for one IP

curl -u login:password https://robot-ws.your-server.de/traffic -d 'type=month&from=2010-09-01&to=2010-09-31&ip=123.123.123.123'
{
  "traffic":{
    "type":"month",
    "from":"2010-09-01",
    "to":"2010-09-31",
    "data":{
      "123.123.123.123":{
        "in":0.2874,
        "out":0.0481,
        "sum":0.3355
      }
    }
  }
}

Query traffic data for multiple IPs

curl -u login:password https://robot-ws.your-server.de/traffic -d 'type=month&from=2010-09-01&to=2010-09-31&ip[]=123.123.123.123&ip[]=124.124.124.124'
{
  "traffic":{
    "type":"month",
    "from":"2010-09-01",
    "to":"2010-09-31",
    "data":{
      "123.123.123.123":{
        "in":0.2874,
        "out":0.0481,
        "sum":0.3355
      },
      "124.124.124.124":{
        "in":0.2874,
        "out":0.0481,
        "sum":0.3355
      }
    }
  }
}

Query traffic data for subnet

curl -u login:password https://robot-ws.your-server.de/traffic -d 'type=month&from=2010-09-01&to=2010-09-31&subnet=2a01:4f8:61:41a2::'
{
  "traffic":{
    "type":"month",
    "from":"2010-09-01",
    "to":"2010-09-31",
    "data":{
      "2a01:4f8:61:41a2::\/64":{
        "in":0.2874,
        "out":0.0481,
        "sum":0.3355
      }
    }
  }
}

SSH keys

GET /key

Description

Query all SSH keys

Request limit

500 requests per 1 hour

Output

(Array)
key (Object)
name (String) Key name
fingerprint (String) Key fingerprint
type (String) Key algorithm type
size (Integer) Key size in bits
data (String) Key data in OpenSSH format

Errors

Status Code Description
404 NOT_FOUND No keys found

Example

curl -u login:password https://robot-ws.your-server.de/key
[
  {
    "key":{
      "name":"key1",
      "fingerprint":"56:29:99:a4:5d:ed:ac:95:c1:f5:88:82:90:5d:dd:10",
      "type":"ECDSA",
      "size":521,
      "data":"ecdsa-sha2-nistp521 AAAAE2VjZHNh ..."
    }
  },
  {
    "key":{
      "name":"key2",
      "fingerprint":"15:28:b0:03:95:f0:77:b3:10:56:15:6b:77:22:a5:bb",
      "type":"ED25519",
      "size":256,
      "data":"ssh-ed25519 AAAAC3NzaC1 ..."
    }
  }
]

POST /key

Description

Add a new SSH key. When the key was successfully added the status code 201 CREATED is returned.

Request limit

200 requests per 1 hour

Input

Name Description
name SSH key name
data SSH key data in OpenSSH or SSH2 format

Output

key (Object)
name (String) Key name
fingerprint (String) Key fingerprint
type (String) Key algorithm type
size (Integer) Key size in bits
data (String) Key data in OpenSSH format

Errors

Status Code Description
400 INVALID_INPUT Invalid input parameters
409 KEY_ALREADY_EXISTS The supplied key already exists
500 KEY_CREATE_FAILED Adding the key failed due to an internal error

Example

curl -u login:password https://robot-ws.your-server.de/key -d 'name=NewKey&data=ssh-rsa+AAAAB3NzaC1yc+...'
{
  "key":{
    "name":"NewKey",
    "fingerprint":"cb:8b:ef:a7:fe:04:87:3f:e5:55:cd:12:e3:e8:9f:99",
    "type":"RSA",
    "size":8192,
    "data":"ssh-rsa AAAAB3NzaC1yc ..."
  }
}

GET /key/<fingerprint>

Description

Query a specific SSH key

Request limit

500 requests per 1 hour

Output

key (Object)
name (String) Key name
fingerprint (String) Key fingerprint
type (String) Key algorithm type
size (Integer) Key size in bits
data (String) Key data in OpenSSH format

Errors

Status Code Description
404 NOT_FOUND Key not found

Example

curl -u login:password https://robot-ws.your-server.de/key/15:28:b0:03:95:f0:77:b3:10:56:15:6b:77:22:a5:bb
{
  "key":{
    "name":"key2",
    "fingerprint":"15:28:b0:03:95:f0:77:b3:10:56:15:6b:77:22:a5:bb",
    "type":"ED25519",
    "size":256,
    "data":"ssh-ed25519 AAAAC3NzaC1 ..."
  }
}

POST /key/<fingerprint>

Description

Update the key name

Request limit

200 requests per 1 hour

Input

Name Description
name SSH key name

Output

key (Object)
name (String) Key name
fingerprint (String) Key fingerprint
type (String) Key algorithm type
size (Integer) Key size in bits
data (String) Key data in OpenSSH format

Errors

Status Code Description
400 INVALID_INPUT Invalid input parameters
404 NOT_FOUND Key not found
500 KEY_UPDATE_FAILED Updating the key name failed due do an internal error

Example

curl -u login:password https://robot-ws.your-server.de/key/15:28:b0:03:95:f0:77:b3:10:56:15:6b:77:22:a5:bb -d name=MyTestKey
{
  "key":{
    "name":"MyTestKey",
    "fingerprint":"15:28:b0:03:95:f0:77:b3:10:56:15:6b:77:22:a5:bb",
    "type":"ED25519",
    "size":256,
    "data":"ssh-ed25519 AAAAC3NzaC1 ..."
  }
}

DELETE /key/<fingerprint>

Description

Remove public key

Request limit

200 requests per 1 hour

Output

No output

Errors

Status Code Description
404 NOT_FOUND Key not found
500 KEY_DELETE_FAILED Deleting the key failed due do an internal error

Example

curl -u login:password https://robot-ws.your-server.de/key/15:28:b0:03:95:f0:77:b3:10:56:15:6b:77:22:a5:bb -X DELETE

Server ordering

Activation

To use the Robot webservice for ordering servers, please activate this function in your Robot administrative interface first via "Administration; Settings; Web Service Settings; Ordering".

GET /order/server/product

Description

Product overview of currently offered standard server products

Request limit

500 requests per 1 hour

Input (optional)

Name Description
type Server type, "virtual" or "dedicated"
min_price Minimum monthly price
max_price Maximum monthly price
min_price_setup Minimum one time fee
max_price_setup Maximum one time fee

Output

(Array)
product (Object)
id (String) Product id
name (String) Product name
description (Array) Textual description
dist (Array) Available distributions
arch (Array) Available distribution architectures
lang (Array) Available distribution languages
price (String) Monthly price in Euro
price_setup (String) One time fee in Euro
price_vat (String) Monthly price in Euro with VAT
price_setup_vat (String) One time fee in Euro with VAT

Errors

Status Code Description
404 NOT_FOUND No products found

Example

curl -u login:password https://robot-ws.your-server.de/order/server/product
[
  {
    "product":{
      "id":"EX60",
      "name":"Root Server EX60",
      "description":[
        "Intel\u00ae Core\u2122 i7-920 Quad-Core",
        "48 GB DDR3 RAM",
        "2 x 2 TB SATA 3 Gb\/s Enterprise HDD; 7200 rpm(Software-RAID 1)",
        "1 Gbit\/s bandwidth"
      ],
      "dist":[
        "Rescue system",
        "CentOS 6.6 minimal",
        "CentOS 7.0 minimal",
        "Debian 7.7 LAMP",
        "Debian 7.7 minimal",
        "openSUSE 13.2 minimal",
        "Ubuntu 14.04.1 LTS minimal",
        "Ubuntu 14.10 minimal"
      ],
      "arch":[
        64,
        32
      ],
      "lang":[
        "en"
      ],
      "price":"49.58",
      "price_setup":"0.00",
      "price_vat":"49.58",
      "price_setup_vat":"0.00"
    }
  },
  {
    "product":{
      "id":"EX40",
      "name":"Root Server EX40",
      "description":[
        "Intel\u00ae Core\u2122 i7-4770 Quad-Core Haswell",
        "32 GB DDR3 RAM",
        "2 x 2 TB SATA 6 Gb\/s Enterprise HDD; 7200 rpm(Software-RAID 1)",
        "1 Gbit\/s bandwidth"
      ],
      "dist":[
        "Rescue system",
        "CentOS 6.6 minimal",
        "CentOS 7.0 minimal",
        "Debian 7.7 LAMP",
        "Debian 7.7 minimal",
        "openSUSE 13.2 minimal",
        "Ubuntu 14.04.1 LTS minimal",
        "Ubuntu 14.10 minimal"
      ],
      "arch":[
        64,
        32
      ],
      "lang":[
        "en"
      ],
      "price":"84.03",
      "price_setup":"41.18",
      "price_vat":"84.03",
      "price_setup_vat":"41.18"
    }
  }
]

GET /order/server/product/<product-id>

Description

Query a specific server product

Request limit

500 requests per 1 hour

Output

product (Object)
id (String) Product id
name (String) Product name
description (Array) Textual description
dist (Array) Available distributions
arch (Array) Available distribution architectures
lang (Array) Available distribution languages
price (String) Monthly price in Euro
price_setup (String) One time fee in Euro
price_vat (String) Monthly price in Euro with VAT
price_setup_vat (String) One time fee in Euro with VAT

Errors

Status Code Description
404 NOT_FOUND Product not found

Example

curl -u login:password https://robot-ws.your-server.de/order/server/product/EX40
{
  "product":{
    "id":"EX40",
    "name":"Root Server EX40",
    "description":[
      "Intel\u00ae Core\u2122 i7-4770 Quad-Core Haswell",
      "32 GB DDR3 RAM",
      "2 x 2 TB SATA 6 Gb\/s Enterprise HDD; 7200 rpm(Software-RAID 1)",
      "1 Gbit\/s bandwidth"
    ],
    "dist":[
      "Rescue system",
      "CentOS 6.6 minimal",
      "CentOS 7.0 minimal",
      "Debian 7.7 LAMP",
      "Debian 7.7 minimal",
      "openSUSE 13.2 minimal",
      "Ubuntu 14.04.1 LTS minimal",
      "Ubuntu 14.10 minimal"
    ],
    "arch":[
      64,
      32
    ],
    "lang":[
      "en"
    ],
    "price":"84.03",
    "price_setup":"41.18",
    "price_vat":"84.03",
    "price_setup_vat":"41.18"
  }
}

GET /order/server/transaction

Description

Overview of all server orders within the last 30 days

Request limit

500 requests per 1 hour

Output

(Array)
transaction (Object)
id (String) Transaction id
date (String) Transaction date
status (String) Transaction status, "ready", "in process" or "cancelled"
server_number (Integer) Server id if transaction status is "ready", null otherwise
server_ip (String) Server main IP address if transaction status is "ready", null otherwise
authorized_key (Array) Array with supplied public SSH keys
host_key (Array) Array with servers public host keys
comment (String) Supplied order comment
product (Object)
id (String) Product id
name (String) Product name
description (Array) Textual description
dist (String) Ordered distribution
arch (Integer) Ordered distribution architecture
lang (String) Ordered distribution language

Errors

Status Code Description
404 NOT_FOUND No transactions found

Example

curl -u login:password https://robot-ws.your-server.de/order/server/transaction
[
  {
    "transaction":{
      "id":"B20150121-344957-251478",
      "date":"2015-01-21T12:30:43+01:00",
      "status":"in process",
      "server_number":null,
      "server_ip":null,
      "authorized_key":[
        
      ],
      "host_key":[
        
      ],
      "comment":null,
      "product":{
        "id":"VX6",
        "name":"vServer VX6",
        "description":[
          "Single-Core CPU",
          "1 GB RAM",
          "25 GB HDD",
          "No telephone support"
        ],
        "dist":"Rescue system",
        "arch":"64",
        "lang":"en"
      }
    }
  },
  {
    "transaction":{
      "id":"B20150121-344958-251479",
      "date":"2015-01-21T12:54:01+01:00",
      "status":"ready",
      "server_number":107239,
      "server_ip":"188.40.1.1",
      "authorized_key":[
        {
          "key":{
            "name":"key1",
            "fingerprint":"15:28:b0:03:95:f0:77:b3:10:56:15:6b:77:22:a5:bb",
            "type":"ED25519",
            "size":256
          }
        }
      ],
      "host_key":[
        {
          "key":{
            "fingerprint":"c1:e4:08:73:dd:f7:e9:d1:94:ab:e9:0f:28:b2:d2:ed",
            "type":"DSA",
            "size":1024
          }
        }
      ],
      "comment":null,
      "product":{
        "id":"EX40",
        "name":"Root Server EX40",
        "description":[
          "Intel\u00ae Core\u2122 i7-4770 Quad-Core Haswell",
          "32 GB DDR3 RAM",
          "2 x 2 TB SATA 6 Gb\/s Enterprise HDD; 7200 rpm(Software-RAID 1)",
          "1 Gbit\/s bandwidth"
        ],
        "dist":"Debian 7.7 minimal",
        "arch":"64",
        "lang":"en"
      }
    }
  }
]

POST /order/server/transaction

Description

Order a new server. When the order was successful the status code 201 CREATED is returned.

Request limit

20 requests per 1 hour

Input

Name Description
product_id Product id
authorized_key[] One or more SSH key fingerprints (optional)
dist Distribution name which should be preinstalled (optional)
arch Architecture of preinstalled distribution (optional)
lang Language of preinstalled distribution (optional)
comment Order comment (optional); Please note that if a comment was supplied the order will be processed manually.
test The order will not be processed if set to "true" (optional)

Output

transaction (Object)
id (String) Transaction id
date (String) Transaction date
status (String) Transaction status, "ready", "in process" or "cancelled"
server_number (Integer) Server id if transaction status is "ready", null otherwise
server_ip (String) Server main IP address if transaction status is "ready", null otherwise
authorized_key (Array) Array with supplied public SSH keys
host_key (Array) Array with servers public host keys
comment (String) Supplied order comment
product (Object)
id (String) Product id
name (String) Product name
description (Array) Textual description
dist (String) Ordered distribution
arch (Integer) Ordered distribution architecture
lang (String) Ordered distribution language

Errors

Status Code Description
400 INVALID_INPUT Invalid input parameters
500 INTERNAL_ERROR The transaction failed due to an internal error

Example

curl -u login:password https://robot-ws.your-server.de/order/server/transaction -d 'product_id=EX40&dist=Debian+7.7+minimal&authorized_key[]=15:28:b0:03:95:f0:77:b3:10:56:15:6b:77:22:a5:bb'
{
  "transaction":{
    "id":"B20150121-344958-251479",
    "date":"2015-01-21T12:54:01+01:00",
    "status":"in process",
    "server_number":null,
    "server_ip":null,
    "authorized_key":[
      {
        "key":{
          "name":"key1",
          "fingerprint":"15:28:b0:03:95:f0:77:b3:10:56:15:6b:77:22:a5:bb",
          "type":"ED25519",
          "size":256
        }
      }
    ],
    "host_key":[
      
    ],
    "comment":null,
    "product":{
      "id":"EX40",
      "name":"Root Server EX40",
      "description":[
        "Intel\u00ae Core\u2122 i7-4770 Quad-Core Haswell",
        "32 GB DDR3 RAM",
        "2 x 2 TB SATA 6 Gb\/s Enterprise HDD; 7200 rpm(Software-RAID 1)",
        "1 Gbit\/s bandwidth"
      ],
      "dist":"Debian 7.7 minimal",
      "arch":"64",
      "lang":"en"
    }
  }
}

GET /order/server/transaction/<id>

Description

Query a specific order transaction

Request limit

500 requests per 1 hour

Output

transaction (Object)
id (String) Transaction id
date (String) Transaction date
status (String) Transaction status, "ready", "in process" or "cancelled"
server_number (Integer) Server id if transaction status is "ready", null otherwise
server_ip (String) Server main IP address if transaction status is "ready", null otherwise
authorized_key (Array) Array with supplied public SSH keys
host_key (Array) Array with servers public host keys
comment (String) Supplied order comment
product (Object)
id (String) Product id
name (String) Product name
description (Array) Textual description
dist (String) Ordered distribution
arch (Integer) Ordered distribution architecture
lang (String) Ordered distribution language

Errors

Status Code Description
404 NOT_FOUND Transaction not found

Example

curl -u login:password https://robot-ws.your-server.de/order/server/transaction/B20150121-344958-251479
{
  "transaction":{
    "id":"B20150121-344958-251479",
    "date":"2015-01-21T12:54:01+01:00",
    "status":"ready",
    "server_number":107239,
    "server_ip":"188.40.1.1",
    "authorized_key":[
      {
        "key":{
          "name":"key1",
          "fingerprint":"15:28:b0:03:95:f0:77:b3:10:56:15:6b:77:22:a5:bb",
          "type":"ED25519",
          "size":256
        }
      }
    ],
    "host_key":[
      {
        "key":{
          "fingerprint":"c1:e4:08:73:dd:f7:e9:d1:94:ab:e9:0f:28:b2:d2:ed",
          "type":"DSA",
          "size":1024
        }
      }
    ],
    "comment":null,
    "product":{
      "id":"EX40",
      "name":"Root Server EX40",
      "description":[
        "Intel\u00ae Core\u2122 i7-4770 Quad-Core Haswell",
        "32 GB DDR3 RAM",
        "2 x 2 TB SATA 6 Gb\/s Enterprise HDD; 7200 rpm(Software-RAID 1)",
        "1 Gbit\/s bandwidth"
      ],
      "dist":"Debian 7.7 minimal",
      "arch":"64",
      "lang":"en"
    }
  }
}

GET /order/server_market/product

Description

Product overview of currently offered server market products

Request limit

500 requests per 1 hour

Input (optional)

Name Description
cpu CPU model name
min_cpu_benchmark Minimum CPU benchmark value
max_cpu_benchmark Maximum CPU benchmark value
min_memory_size Minimum memory size in GB
max_memory_size Maximum memory size in GB
min_hdd_size Minimum hard disk size in GB
max_hdd_size Maximum hard disk size in GB
min_hdd_count Minimum hard disk count
max_hdd_count Maximum hard disk count
search Full text search
min_price Minimum monthly price
max_price Maximum monthly price

Output

(Array)
product (Object)
id (Integer) Product id
name (String) Product name
description (Array) Textual description
dist (Array) Available distributions
arch (Array) Available distribution architectures
lang (Array) Available distribution languages
cpu (String) CPU model name
cpu_benchmark (Integer) CPU benchmark value
memory_size (Integer) Main memory size in GB
hdd_size (Integer) Hard disk size in GB
hdd_count (Integer) Hard disk count
datacenter (Integer) Datacentre
price (String) Monthly price in Euro
price_setup (String) One time fee in Euro
price_vat (String) Monthly price in Euro with VAT
price_setup_vat (String) One time fee in Euro with VAT
fixed_price (Boolean) Set to "true" if product has a fixed price
next_reduce (Integer) Countdown until next price reduce in seconds

Errors

Status Code Description
404 NOT_FOUND No products found

Example

curl -u login:password https://robot-ws.your-server.de/order/server_market/product
[
  {
    "product":{
      "id":276112,
      "name":"SB34",
      "description":[
        "AMD Athlon 64 6000+ X2",
        "4x RAM 2048 MB DDR2",
        "2x HDD 750 GB SATA",
        "RAID Controller 2-Port SATA PCI - 3ware 8006-2LP"
      ],
      "dist":[
        "Rescue system"
      ],
      "arch":[
        64
      ],
      "lang":[
        "en"
      ],
      "cpu":"AMD Athlon 64 6000+ X2",
      "cpu_benchmark":1580,
      "memory_size":8,
      "hdd_size":750,
      "hdd_count":2,
      "datacenter":12,
      "price":"28.57",
      "price_setup":"0.00",
      "price_vat":"28.57",
      "price_setup_vat":"0.00",
      "fixed_price":false,
      "next_reduce":-87634
    }
  },
  {
    "product":{
      "id":282323,
      "name":"SB109",
      "description":[
        "Intel Core i7 980x",
        "6x RAM 4096 MB DDR3",
        "2x SSD 120 GB SATA",
        "NIC 1000Mbit PCI - Intel Pro1000GT PWLA8391GT",
        "RAID Controller 4-Port SATA PCI-E - Adaptec 5405"
      ],
      "dist":[
        "Rescue system"
      ],
      "arch":[
        64
      ],
      "lang":[
        "en"
      ],
      "cpu":"Intel Core i7 980x",
      "cpu_benchmark":8944,
      "memory_size":24,
      "hdd_size":120,
      "hdd_count":2,
      "datacenter":14,
      "price":"91.60",
      "price_setup":"0.00",
      "price_vat":"91.60",
      "price_setup_vat":"0.00",
      "fixed_price":false,
      "next_reduce":-10800
    }
  }
]

GET /order/server_market/product/<product-id>

Description

Query a specific server market product

Request limit

500 requests per 1 hour

Output

product (Object)
id (Integer) Product id
name (String) Product name
description (Array) Textual description
dist (Array) Available distributions
arch (Array) Available distribution architectures
lang (Array) Available distribution languages
cpu (String) CPU model name
cpu_benchmark (Integer) CPU benchmark value
memory_size (Integer) Main memory size in GB
hdd_size (Integer) Hard disk size in GB
hdd_count (Integer) Hard disk count
datacenter (Integer) Datacentre
price (String) Monthly price in Euro
price_setup (String) One time fee in Euro
price_vat (String) Monthly price in Euro with VAT
price_setup_vat (String) One time fee in Euro with VAT
fixed_price (Boolean) Set to "true" if product has a fixed price
next_reduce (Integer) Countdown until next price reduce in seconds

Errors

Status Code Description
404 NOT_FOUND Product not found

Example

curl -u login:password https://robot-ws.your-server.de/order/server_market/product/282323
{
  "product":{
    "id":282323,
    "name":"SB109",
    "description":[
      "Intel Core i7 980x",
      "6x RAM 4096 MB DDR3",
      "2x SSD 120 GB SATA",
      "NIC 1000Mbit PCI - Intel Pro1000GT PWLA8391GT",
      "RAID Controller 4-Port SATA PCI-E - Adaptec 5405"
    ],
    "dist":[
      "Rescue system"
    ],
    "arch":[
      64
    ],
    "lang":[
      "en"
    ],
    "cpu":"Intel Core i7 980x",
    "cpu_benchmark":8944,
    "memory_size":24,
    "hdd_size":120,
    "hdd_count":2,
    "datacenter":14,
    "price":"91.60",
    "price_setup":"0.00",
    "price_vat":"91.60",
    "price_setup_vat":"0.00",
    "fixed_price":false,
    "next_reduce":-10800
  }
}

GET /order/server_market/transaction

Description

Overview of all server orders within the last 30 days

Request limit

500 requests per 1 hour

Output

(Array)
transaction (Object)
id (String) Transaction id
date (String) Transaction date
status (String) Transaction status, "ready", "in process" or "cancelled"
server_number (Integer) Server id if transaction status is "ready", null otherwise
server_ip (String) Server main IP address if transaction status is "ready", null otherwise
authorized_key (Array) Array with supplied public SSH keys
host_key (Array) Array with servers public host keys
comment (String) Supplied order comment
product (Object)
id (Integer) Product id
name (String) Product name
description (Array) Textual description
dist (String) Ordered distribution
arch (String) Ordered distribution architecture
lang (String) Ordered distribution language
cpu (String) CPU model name
cpu_benchmark (Integer) CPU benchmark value
memory_size (Integer) Main memory size in GB
hdd_size (Integer) Hard disk size in GB
hdd_count (Integer) Hard disk count
datacenter (Integer) Datacentre
fixed_price (Boolean) true
next_reduce (Integer) 0

Errors

Status Code Description
404 NOT_FOUND No transactions found

Example

curl -u login:password https://robot-ws.your-server.de/order/server_market/transaction
[
  {
    "transaction":{
      "id":"B20150121-344957-251478",
      "date":"2015-01-21T12:30:43+01:00",
      "status":"in process",
      "server_number":null,
      "server_ip":null,
      "authorized_key":[
        
      ],
      "host_key":[
        
      ],
      "comment":null,
      "product":{
        "id":283693,
        "name":"SB110",
        "description":[
          "Intel Core i7 980x",
          "6x RAM 4096 MB DDR3",
          "2x HDD 1,5 TB SATA",
          "2x SSD 120 GB SATA"
        ],
        "dist":"Rescue system",
        "arch":"64",
        "lang":"en",
        "cpu":"Intel Core i7 980x",
        "cpu_benchmark":8944,
        "memory_size":24,
        "hdd_size":1536,
        "hdd_count":2,
        "datacenter":14,
        "fixed_price":true,
        "next_reduce":0
      }
    }
  },
  {
    "transaction":{
      "id":"B20150121-344958-251479",
      "date":"2015-01-21T12:54:01+01:00",
      "status":"ready",
      "server_number":107239,
      "server_ip":"188.40.1.1",
      "authorized_key":[
        {
          "key":{
            "name":"key1",
            "fingerprint":"15:28:b0:03:95:f0:77:b3:10:56:15:6b:77:22:a5:bb",
            "type":"ED25519",
            "size":256
          }
        }
      ],
      "host_key":[
        {
          "key":{
            "fingerprint":"c1:e4:08:73:dd:f7:e9:d1:94:ab:e9:0f:28:b2:d2:ed",
            "type":"DSA",
            "size":1024
          }
        }
      ],
      "comment":null,
      "product":{
        "id":277254,
        "name":"SB114",
        "description":[
          "Intel Core i7 950",
          "6x RAM 2048 MB DDR3",
          "7x HDD 1,5 TB SATA"
        ],
        "dist":"Rescue system",
        "arch":"64",
        "lang":"en",
        "cpu":"Intel Core i7 950",
        "cpu_benchmark":5682,
        "memory_size":12,
        "hdd_size":1536,
        "hdd_count":7,
        "datacenter":14,
        "fixed_price":true,
        "next_reduce":0
      }
    }
  }
]

POST /order/server_market/transaction

Description

Order a new server from the server market. When the order was successful the status code 201 CREATED is returned.

Request limit

20 requests per 1 hour

Input

Name Description
product_id Product id
authorized_key[] One or more SSH key fingerprints (optional)
dist Distribution name which should be preinstalled (optional)
arch Architecture of preinstalled distribution (optional)
lang Language of preinstalled distribution (optional)
comment Order comment (optional); Please note that if a comment was supplied the order will be processed manually.
test The order will not be processed if set to "true" (optional)

Output

transaction (Object)
id (String) Transaction id
date (String) Transaction date
status (String) Transaction status, "ready", "in process" or "cancelled"
server_number (Integer) Server id if transaction status is "ready", null otherwise
server_ip (String) Server main IP address if transaction status is "ready", null otherwise
authorized_key (Array) Array with supplied public SSH keys
host_key (Array) Array with servers public host keys
comment (String) Supplied order comment
product (Object)
id (Integer) Product id
name (String) Product name
description (Array) Textual description
dist (String) Ordered distribution
arch (String) Ordered distribution architecture
lang (String) Ordered distribution language
cpu (String) CPU model name
cpu_benchmark (Integer) CPU benchmark value
memory_size (Integer) Main memory size in GB
hdd_size (Integer) Hard disk size in GB
hdd_count (Integer) Hard disk count
datacenter (Integer) Datacentre
fixed_price (Boolean) true
next_reduce (Integer) 0

Errors

Status Code Description
400 INVALID_INPUT Invalid input parameters
500 INTERNAL_ERROR The transaction failed due to an internal error

Example

curl -u login:password https://robot-ws.your-server.de/order/server_market/transaction -d 'product_id=283693&authorized_key[]=15:28:b0:03:95:f0:77:b3:10:56:15:6b:77:22:a5:bb'
{
  "transaction":{
    "id":"B20150121-344958-251479",
    "date":"2015-01-21T12:54:01+01:00",
    "status":"in process",
    "server_number":null,
    "server_ip":null,
    "authorized_key":[
      {
        "key":{
          "name":"key1",
          "fingerprint":"15:28:b0:03:95:f0:77:b3:10:56:15:6b:77:22:a5:bb",
          "type":"ED25519",
          "size":256
        }
      }
    ],
    "host_key":[
      
    ],
    "comment":null,
    "product":{
      "id":283693,
      "name":"SB110",
      "description":[
        "Intel Core i7 980x",
        "6x RAM 4096 MB DDR3",
        "2x HDD 1,5 TB SATA",
        "2x SSD 120 GB SATA"
      ],
      "dist":"Rescue system",
      "arch":"64",
      "lang":"en",
      "cpu":"Intel Core i7 980x",
      "cpu_benchmark":8944,
      "memory_size":24,
      "hdd_size":1536,
      "hdd_count":2,
      "datacenter":14,
      "fixed_price":false,
      "next_reduce":0
    }
  }
}

GET /order/server_market/transaction/<id>

Description

Query a specific order transaction

Request limit

500 requests per 1 hour

Output

transaction (Object)
id (String) Transaction id
date (String) Transaction date
status (String) Transaction status, "ready", "in process" or "cancelled"
server_number (Integer) Server id if transaction status is "ready", null otherwise
server_ip (String) Server main IP address if transaction status is "ready", null otherwise
authorized_key (Array) Array with supplied public SSH keys
host_key (Array) Array with servers public host keys
comment (String) Supplied order comment
product (Object)
id (Integer) Product id
name (String) Product name
description (Array) Textual description
dist (String) Ordered distribution
arch (String) Ordered distribution architecture
lang (String) Ordered distribution language
cpu (String) CPU model name
cpu_benchmark (Integer) CPU benchmark value
memory_size (Integer) Main memory size in GB
hdd_size (Integer) Hard disk size in GB
hdd_count (Integer) Hard disk count
datacenter (Integer) Datacentre
fixed_price (Boolean) true
next_reduce (Integer) 0

Errors

Status Code Description
404 NOT_FOUND Transaction not found

Example

curl -u login:password https://robot-ws.your-server.de/order/server_market/transaction/B20150121-344958-251479
{
  "transaction":{
    "id":"B20150121-344958-251479",
    "date":"2015-01-21T12:54:01+01:00",
    "status":"in process",
    "server_number":null,
    "server_ip":null,
    "authorized_key":[
      {
        "key":{
          "name":"key1",
          "fingerprint":"15:28:b0:03:95:f0:77:b3:10:56:15:6b:77:22:a5:bb",
          "type":"ED25519",
          "size":256
        }
      }
    ],
    "host_key":[
      
    ],
    "comment":null,
    "product":{
      "id":283693,
      "name":"SB110",
      "description":[
        "Intel Core i7 980x",
        "6x RAM 4096 MB DDR3",
        "2x HDD 1,5 TB SATA",
        "2x SSD 120 GB SATA"
      ],
      "dist":"Rescue system",
      "arch":"64",
      "lang":"en",
      "cpu":"Intel Core i7 980x",
      "cpu_benchmark":8944,
      "memory_size":24,
      "hdd_size":1536,
      "hdd_count":2,
      "datacenter":14,
      "fixed_price":true,
      "next_reduce":0
    }
  }
}

PHP Client

There is a PHP5 client library available for download at https://robot.your-server.de/downloads/robot-client.zip. You need PHP5 with libcurl support to use it

Example

require 'RobotClient.class.php';

$robot = new RobotClient('https://robot-ws.your-server.de', 'login', 'password');

// retrieve all failover ips
$results = $robot->failoverGet();

foreach ($results as $result)
{
  echo $result->failover->ip . "\n";
  echo $result->failover->server_ip . "\n";
  echo $result->failover->active_server_ip . "\n";
}

// retrieve a specific failover ip
$result = $robot->failoverGet('123.123.123.123');

echo $result->failover->ip . "\n";
echo $result->failover->server_ip . "\n";
echo $result->failover->active_server_ip . "\n";

// switch routing
try
{
  $robot->failoverRoute('123.123.123.123', '213.133.104.190');
}
catch (RobotClientException $e)
{
  echo $e->getMessage() . "\n";
}


© 2015. Hetzner Online AG. Alle Rechte vorbehalten.