Getting started
HTTP status codes
The API uses standard HTTP status codes. Error bodies follow a predictable shape so you can route on a stable machine-readable code.
| Status | Name | Meaning |
|---|---|---|
| 200 | OK | Request succeeded. |
| 201 | Created | Resource was created successfully. |
| 204 | No Content | Request succeeded with no response body. |
| 400 | Bad Request | Request validation failed. |
| 401 | Unauthorized | Missing or invalid credentials. |
| 403 | Forbidden | Authenticated but not authorized. |
| 404 | Not Found | Resource does not exist. |
| 409 | Conflict | Request conflicts with current state. |
| 422 | Unprocessable | Semantic validation failed. |
| 429 | Too Many Requests | Rate limit exceeded — retry after the Retry-After header. |
| 5xx | Server error | Hubstaff error; retry with exponential backoff. |