API

Interact with our system programmatically from your own applications

How it works

The API is similar to the RESTful architecture, accepting and returning JSON data. Authentication is implemented as HTTP Basic Authentication over SSL (https) and Bearer token (generated from Users page -> Tokens tab). Failed authentication attempts return a 401 unauthorized. 20 failed authentication attempts lock out the requesting IP for 5 minutes (no response).

The examples below include the HTML content editable attribute to allow adjustment of credentials and/or IP address prior to copying and pasting elsewhere – e.g., your terminal.

List All Servers

URI: https://api.macstadium.com/core/api/servers
Request: GET
Return: JSON array of array{id, name, ip, type, location, status, creation date, cancel date} or error string. Servers with multiple IPs will have multiple listings.
Example1:

curl -H "Accept: application/json" -H "Content-Type: application/json" -X GET -u user:pass https://api.macstadium.com/core/api/servers

Example2:

curl -H "Accept: application/json" -H "Content-Type: application/json" -H 'Authorization: Bearer {token}' -X GET https://api.macstadium.com/core/api/servers

Server Status by ID/IP

URI: https://api.macstadium.com/core/api/servers/{id or ip_address}
Request: GET
Return: JSON array{id, name, power, type, location, status, creation date, cancel date} or error string. Power can be ‘On’, ‘Off’, ‘Rebooting’, or ‘Error’.
Example1:

curl -H "Accept: application/json" -H "Content-Type: application/json" -X GET -u user:pass https://api.macstadium.com/core/api/servers/192.168.1.101

Example2:

curl -H "Accept: application/json" -H "Content-Type: application/json" -X GET -H 'Authorization: Bearer {token}' https://api.macstadium.com/core/api/servers/192.168.1.101

Server Action (Power) by ID/IP

URI: https://api.macstadium.com/core/api/servers/{id or ip_address}/{action}
Request: GET
Params: Action can be ‘On’, 'Off’, or ‘Reboot’ (case insensitive).
Return: String. ‘True’ on success or an error message.
Example1:

curl -H "Accept: application/json" -H "Content-Type: application/json" -X GET -u user:pass https://api.macstadium.com/core/api/servers/192.168.1.101/reboot

Example2:

curl -H "Accept: application/json" -H "Content-Type: application/json" -X GET -H 'Authorization: Bearer {token}' https://api.macstadium.com/core/api/servers/192.168.1.101/reboot