Response Format
All API responses are JSON. Here's how to interpret success and error responses.
Success Responses
Successful responses include a "success": true field and a "data" object containing the result:
{
"success": true,
"data": {
"servers": [ ... ],
"count": 5
}
}
For single-resource responses (e.g. getting one server), the resource is nested under its singular name:
{
"success": true,
"data": {
"server": {
"id": 1,
"name": "web-01",
...
}
}
}
For create operations, the API returns HTTP 201 Created with the new resource:
HTTP/1.1 201 Created
{
"success": true,
"data": {
"server": {
"id": 5,
"name": "web-02",
"agent_key": "a1b2c3d4e5f6..."
}
}
}
Error Responses
Errors include an "error" message and an appropriate HTTP status code. Some errors also include a "code" field with a machine-readable error identifier:
{
"error": "Server not found",
"code": 404
}
HTTP Status Codes
| Code | Name | Meaning |
|---|---|---|
200 | OK | Request succeeded |
201 | Created | Resource was created (POST requests) |
400 | Bad Request | Missing or invalid parameters in the request body |
401 | Unauthorized | Missing or invalid API key |
403 | Forbidden | Plan doesn't include API access, plan expired, or resource limit reached |
404 | Not Found | Resource doesn't exist or doesn't belong to your account |
405 | Method Not Allowed | HTTP method not supported for this resource |
429 | Too Many Requests | Rate limit exceeded (1000 requests/hour) |
500 | Internal Server Error | Something went wrong on our end |
Pagination
List endpoints that return large collections (e.g. incidents) include pagination metadata:
total, page, limit, and pages. Use the page and limit query parameters to navigate.
Next Steps
- Servers API — start making requests
- Monitors API — manage monitors
- Error Codes — full list of error codes and their causes