Error Codes
AttractOS API returns structured JSON errors with a code, message, and HTTP status. Use the code field for programmatic error handling and the error message for debugging. All errors follow the format: {"error": "message", "code": "ERROR_CODE"}.
Error Response Format
All API errors return a JSON object with these fields:
{
"error": "Human-readable error message",
"code": "ERROR_CODE",
"retry_after": 30 // Only for rate limit errors
} Authentication Errors (401)
These errors occur when your API key is missing, invalid, or revoked.
MISSING_KEY 401 No Authorization header was provided in the request.
Fix: Add the Authorization header with your API key: Authorization: Bearer YOUR_API_KEY
INVALID_KEY 401 The API key provided is invalid or has been revoked.
Fix: Check that your API key is correct. Generate a new key from your dashboard if needed.
USER_NOT_FOUND 401 The user associated with this API key no longer exists.
Fix: This typically means the account was deleted. Create a new account and API key.
Authorization Errors (403)
These errors occur when you're authenticated but lack permission for the resource.
SITE_NOT_FOUND 403 The site ID does not exist or you do not have access to it.
Fix: Verify the site ID is correct. Use GET /api/v1/sites to list your accessible sites.
PLAN_REQUIRED 403 This feature requires a higher plan tier.
Fix: Upgrade to Pro to access this feature (e.g., hourly granularity timeseries).
Request Errors (400)
These errors occur when your request is malformed or missing required parameters.
MISSING_SITE_ID 400 The siteId path parameter is required but was not provided.
Fix: Include the site ID in the URL path: /api/v1/sites/{siteId}/stats
INVALID_DATE_RANGE 400 The start or end date parameter is invalid.
Fix: Use ISO 8601 date format: YYYY-MM-DD (e.g., 2024-01-15)
INVALID_JSON 400 The request body contains invalid JSON.
Fix: Check your JSON syntax. Use a JSON validator if needed.
Rate Limit Errors (429)
These errors occur when you've exceeded your request or event limits.
RATE_LIMITED 429 You have exceeded the API rate limit for your plan.
Fix: Wait for the time specified in retry_after. Consider upgrading for higher limits.
LIMIT_EXCEEDED 429 You have exceeded your monthly event tracking quota.
Fix: Wait until the next billing cycle or upgrade your plan for more events.
Server Errors (500)
These errors indicate an unexpected problem on our end.
SERVER_ERROR 500 An unexpected error occurred on the server.
Fix: Retry the request. If the error persists, contact [email protected].
Frequently Asked Questions
Why am I getting INVALID_KEY when my key worked before?
How do I find the correct site ID?
GET /api/v1/sites endpoint to list all your sites. Each site object includes an id field you can use in other API calls.