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",
"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, 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
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_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_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_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_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_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
Output
| server (Object)
|
| server_ip (String)
|
Server main ip address
|
| 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_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
|
| 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",
"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",
"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
|
| 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",
"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
|
| 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",
"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
|
| 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",
"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,
"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
|
| 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",
"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
|
| 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",
"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
Request limit
500 requests per 1 hour
Output
| (Array)
|
| reset (Object)
|
| server_ip (String)
|
Server main IP
|
| 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",
"type": ["man","hw","sw"]
}
},
{
"reset":
{
"server_ip": "111.111.111.111",
"type": ["man"]
}
}
]
GET /reset/<server-ip>
Description
Query reset options for a specific server
Request limit
500 requests per 1 hour
Output
| reset (Object)
|
| server_ip (String)
|
Server main IP
|
| 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",
"type": ["man","hw","sw"]
}
}
POST /reset/<server-ip>
Description
Execute reset on specific server
Request limit
50 requests per 1 hour
Input
| type
|
Reset type to execute
|
Output
| reset (Object)
|
| server_ip (String)
|
Server main IP
|
| 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
|
| 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",
"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
|
| 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",
"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
|
| 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",
"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
|
|
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"
}
}
POST /wol/<server-ip>
Description
Send Wake On LAN packet to server
Request limit
10 requests per 1 hour
Input
Output
| wol (Object)
|
| server_ip (String)
|
Server main IP
|
|
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"
}
}
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
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",
"os": ["linux","freebsd","opensolaris","vkvm"],
"arch": [64,32],
"active": false,
"password": null
},
"linux": {
"server_ip": "123.123.123.123",
"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",
"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",
"dist": null,
"lang": null,
"active": false,
"password": null
},
"plesk": {
"server_ip": "123.123.123.123",
"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",
"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
|
| 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",
"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
|
| 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",
"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
|
| 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",
"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
|
| 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",
"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
|
| 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",
"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
|
| 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",
"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
|
| 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",
"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
|
| 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",
"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
|
| 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",
"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
|
| 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",
"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
Output
| windows (Object)
|
| server_ip (String)
|
Server main IP
|
| 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",
"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
|
| 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",
"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
|
| 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",
"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
|
| 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",
"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
|
| 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",
"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
|
| 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",
"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
|
| 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",
"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
|
| 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",
"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
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
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";
}