Hetzner - DokuWiki

Robot Webservice/en

General

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.

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) Datacentre 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 order 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 reducrd) or not (traffic overusage will be charged)
status (String) Server order 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 IPs
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

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 reducrd) or not (traffic overusage will be charged)
status (String) Server order 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 IPs
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 -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
 }
}

IP

GET /ip

Description

Query list of all single IPs

Request limit

5000 requests per 1 hour

Input (optional)

server_ip Server main ip, show only ips 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 IPs 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

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 IP not 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

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 Ip 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/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 one 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 No IP address 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 No IP address 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 No IP address found.
404 MAC_NOT_AVAILABLE For this ip address it is not possible to set a separate mac address.
404 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)

server_ip Server main IP, 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 net is a failover net
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

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
 }
}

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
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
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

type Reset type to execute

Output

reset (Object)
server_ip (String) Server main IP
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 IPs 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 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 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 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 to another server

Request limit

50 requests per 1 hour

Input

active_server_ip Main ip 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 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 not found
404 FAILOVER_NEW_SERVER_NOT_FOUND Destination server not found
409 FAILOVER_ALREADY_ROUTED The failover IP is already routed to the selected server
409 FAILOVER_LOCKED Switching the failover IP is blocked due to another active request
500 FAILOVER_FAILED Due to an internal error switching of the failover IP failed
500 FAILOVER_NOT_COMPLETE Due to an internal error switching of the failover IP 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
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

Output

wol (Object)
server_ip (String) Server main IP
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 one 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 The server with IP <server-ip> was 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","opensolaris","vkvm"],
    "arch": [64,32],
    "active": false,
    "password": null
  },
  "linux": {
    "server_ip": "123.123.123.123",
    "server_number": 321,
    "dist": ["CentOS 5.5 minimal","Debian 5.0 minimal"],
    "arch": [64,32],
    "lang": ["en"],
    "active": false,
    "password": null
  },
  "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 5.0 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
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

Errors

Status Code Description
404 SERVER_NOT_FOUND The server with IP <server-ip> was 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","opensolaris","vkvm"],
  "arch": [64,32],
  "active": false,
  "password": null
 }
}

POST /boot/<server-ip>/rescue

Description

Activate Rescue System

Request limit

500 requests per 1 hour

Input

os Operating System
arch Architecture

Output

rescue (Object)
server_ip (String) Server main IP
server_number (Integer) Server id
os (String) operating system
arch (Integer) Architecture
active (Boolean) true
password (String) Rescue System root password

Errors

Status Code Description
400 INVALID_INPUT Invalid input parameters
404 SERVER_NOT_FOUND The server with IP <server-ip> was 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": "u7Ng5j43"
 }
}

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
server_number (Integer) Server id
os (Array) Array of available operating systems
arch (Array) Array of available architectures
active (Boolean) false
password (String) null

Errors

Status Code Description
404 SERVER_NOT_FOUND The server with IP <server-ip> was 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","opensolaris","vkvm"],
  "arch": [64,32],
  "active": false,
  "password": null
 }
}

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
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

Errors

Status Code Description
404 SERVER_NOT_FOUND The server with IP <server-ip> was 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 5.0 minimal"],
  "arch": [64,32],
  "lang": ["en"],
  "active": false,
  "password": null
 }
}

POST /boot/<server-ip>/linux

Description

Activate linux installation

Request limit

500 requests per 1 hour

Input

dist Distribution
arch Architecture
lang Language

Output

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

Errors

Status Code Description
400 INVALID_INPUT Invalid input parameters
404 SERVER_NOT_FOUND The server with IP <server-ip> was 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": "u7Ng5j43"
 }
}

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
server_number (Integer) Server id
os (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 The server with IP <server-ip> was 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 5.0 minimal"],
  "arch": [64,32],
  "lang": ["en"],
  "active": false,
  "password": null
 }
}

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
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 The server with IP <server-ip> was 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

dist Distribution
arch Architecture
lang Language

Output

vnc (Object)
server_ip (String) Server main IP
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 The server with IP <server-ip> was 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": "u7Ng5j43"
 }
}

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
server_number (Integer) Server id
os (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 The server with IP <server-ip> was 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
server_number (Integer) Server id
dist (Array|String) Array of available windows distributions or the active distributon
arch (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 The server with IP <server-ip> was 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

lang Language

Output

windows (Object)
server_ip (String) Server main IP
server_number (Integer) Server id
dist (String) Distribution
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 The server with IP <server-ip> was 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": "u7Ng5j43"
 }
}

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
server_number (Integer) Server id
os (Array) Array of available distributions
lang (Array) Array of available languages
active (Boolean) false
password (String) null

Errors

Status Code Description
404 SERVER_NOT_FOUND The server with IP <server-ip> was 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
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 intallation hostname or null

Errors

Status Code Description
404 SERVER_NOT_FOUND The server with IP <server-ip> was 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 5.0 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

dist Distribution
arch Architecture
lang Language
hostname Hostname

Output

plesk (Object)
server_ip (String) Server main IP
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 The server with IP <server-ip> was 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 plesk 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": "ie8Nhz6R",
  "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
server_number (Integer) Server id
dist (Array|String) Array of available distributions
arch (Array| Integer) Array of available architectures
lang (Array| String) Array of available languages
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 The server with IP <server-ip> was 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 5.0 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
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 intallation hostname or null

Errors

Status Code Description
404 SERVER_NOT_FOUND The server with IP <server-ip> was 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
{
  "plesk": {
  "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

dist Distribution
arch Architecture
lang Language
hostname Hostname

Output

cpanel (Object)
server_ip (String) Server main IP
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 The server with IP <server-ip> was not found
404 BOOT_NOT_AVAILABLE No boot configuration available for this server
404 CPANEL_MISSING_ADDON No cPanel addon found
404 CPANEL_NOT_ALLOWED cPanel cannot be installed because the manufacturer does not permit to use cPanel in your country
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.yaml/123.123.123.123/cpanel -d 'dist=CentOS 5.6 + cPanel&arch=64&lang=en&hostname=cpanel.testen.de'
{
  "plesk": {
  "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

cpanel (Object)
server_ip (String) Server main IP
server_number (Integer) Server id
dist (Array|String) Array of available distributions
arch (Array| Integer) Array of available architectures
lang (Array| String) Array of available languages
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 The server with IP <server-ip> was 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)

server_ip Server main IP, 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

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

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

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

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 (day,month,year)

Output

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

Errors

Status Code Description
400 INVALID_INPUT Invalid input parameters
404 NOT_FOUND No IPs 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::2": {
       "in":0.2874,
       "out":0.0481,
       "sum":0.3355
     },
     "2a01:4f8:61:41a2::3": {
       "in":0.2874,
       "out":0.0481,
       "sum":0.3355
     }
  }
 }
}

PHP Client

There is a PHP5 client library available for download. (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";
}


© 2014. Hetzner Online AG. Alle Rechte vorbehalten.