Errors
The exit1.dev API uses standard HTTP status codes and returns structured error responses.
Status Codes
| Code | Meaning | Description |
|---|---|---|
| 200 | OK | Request succeeded |
| 201 | Created | Resource created successfully (POST) |
| 400 | Bad Request | Invalid request parameters or body |
| 401 | Unauthorized | Missing or invalid API key |
| 403 | Forbidden | Access denied — missing scope or resource not owned |
| 404 | Not Found | Resource not found |
| 405 | Method Not Allowed | HTTP method not supported for this endpoint |
| 409 | Conflict | Duplicate resource (e.g., URL already monitored) or plan limit reached |
| 422 | Unprocessable | Idempotency key conflict (same key used for a different request) |
| 429 | Too Many Requests | Rate limit exceeded |
| 500 | Internal Server Error | Server-side error |
Error Response Format
All error responses follow this structure:
{
"error": "Invalid parameter: limit must be between 1 and 100"
}Common Errors
401 Unauthorized
{
"error": "Invalid or missing API key"
}Causes:
- Missing
X-Api-Keyheader - Invalid API key format
- Revoked API key
403 Forbidden
{
"error": "API key does not have the required scope: checks:write"
}Causes:
- API key missing required scope for the operation
- Attempting to access a check owned by a different account
404 Not Found
{
"error": "Check not found"
}Causes:
- The check ID does not exist
- The check belongs to a different account
409 Conflict
{
"error": "A check already exists for this URL"
}Causes:
- Duplicate URL when creating or updating a check
- Maximum check limit reached for your plan
422 Unprocessable
{
"error": "Idempotency key previously used for a different request"
}Cause: The same Idempotency-Key was used with a different HTTP method or path. Use a new key for each distinct request.
429 Too Many Requests
{
"error": "Rate limit exceeded. Please retry after the reset time.",
"retryAfter": 60
}Cause: You’ve exceeded a rate limit. Wait for the specified retry period.
Last updated on