HTTP status codes
Common error responses
400 Bad Request
The request is malformed or missing required fields.
Causes:
- Missing required JSON fields
- Invalid parameter types (e.g., string instead of number)
- Out-of-range values (e.g.,
limit > 100)
Fix: Review the endpoint documentation and validate your request payload.
{
"error": "Bad Request",
"message": "Field 'limit' must be between 1 and 100"
}
401 Unauthorized
The Authorization header is missing, malformed, or the API key is invalid.
Causes:
- Missing
Authorization header
- Incorrect header name (e.g.,
authorization instead of Authorization)
- Invalid or expired API key
- Key was revoked
Fix:
- Verify the header is spelled
Authorization (capital A).
- Ensure the key starts with
orbit_.
- Rotate the key if it was leaked.
{
"error": "Unauthorized",
"message": "Invalid or missing API key"
}
403 Forbidden
The API key is valid, but the user lacks permission for this action.
Causes:
- User role doesn’t have the required permission
- Workspace is restricted
Fix: Contact the workspace admin to grant the necessary permissions.
{
"error": "Forbidden",
"message": "User does not have permission to access this resource"
}
404 Not Found
The requested resource doesn’t exist.
Causes:
- Invalid workspace ID
- Invalid endpoint path
- Resource was deleted
Fix: Verify the workspace ID and endpoint path are correct.
{
"error": "Not Found",
"message": "Workspace with ID 12345 not found"
}
429 Too Many Requests
You’ve exceeded the rate limit (100 requests/minute per API key).
Causes:
- Too many requests in a short time
- Concurrent requests from multiple clients using the same key
Fix:
- Implement exponential backoff: wait 1s, 2s, 4s before retrying.
- Cache GET responses to reduce requests.
- Consider using a separate API key for read-heavy operations.
{
"error": "Too Many Requests",
"message": "Rate limit exceeded. Retry after 60 seconds."
}
500 Internal Server Error
The Orbit API encountered an unexpected error.
Causes:
- Server bug
- Database connectivity issue
- Temporary outage
Fix:
- Retry the request after a short delay (exponential backoff).
- Check the status page for known issues.
- If the issue persists, contact support with the
X-Request-ID header value.
{
"error": "Internal Server Error",
"message": "An unexpected error occurred. Please try again later."
}
All API responses include helpful headers:
X-Request-ID: Unique request identifier for debugging. Include this when reporting issues.
X-RateLimit-Limit: Maximum requests per minute (100).
X-RateLimit-Remaining: Requests remaining in the current window.
X-RateLimit-Reset: Unix timestamp when the rate limit resets.
Debugging tips
Always log the X-Request-ID when an error occurs—it helps support team triage issues faster.
- Check the status page: status.planetaryapp.us
- Verify your API key: Go to Workspace → Settings → Public API and confirm the key is active.
- Test with cURL: Use the API reference examples to isolate the issue.
- Review the request: Ensure all required fields are present and correctly formatted.
- Check rate limits: Look at the
X-RateLimit-Remaining header to see if you’re hitting the limit.
Still stuck?