Getting Started

Rate limits & errors

Updated Sep 26, 2026

Rate limits

Each API key has its own limit in requests per minute (default 120, configurable from 10 to 6,000 when you create the key). Responses include:

HeaderMeaning
X-RateLimit-LimitRequests allowed per minute for this key
X-RateLimit-RemainingRequests left in the current window
Retry-AfterSeconds to wait (only on 429)

Public, unauthenticated catalogue calls (e.g. GET /api/v1/skills without a key) share an IP-based limit. Some endpoints have additional limits: at most 10 queued or running simulation jobs and 25 sandbox robots per developer.

Errors

Errors are JSON objects with an error message. Validation errors may add an errors map.

{ "error": "This API key lacks the \"sandbox\" scope." }
StatusWhen
400Malformed request
401Missing, invalid, expired or revoked API key
403The key lacks the required scope
404Resource not found (or not yours)
409The robot refused the command in its current state (e.g. SafeCore emergency stop)
422Validation failed — see error / errors
429Rate limit exceeded — honour Retry-After
500Server error — retry with exponential backoff

Retries

Retry 429 and 5xx responses with exponential backoff and jitter (for example 1 s, 2 s, 4 s, 8 s). Never retry 4xx responses other than 429 without changing the request.