# Error Handling

The API uses standard HTTP status codes to indicate success or failure.

## Common Status Codes

| Status | Description |
|  --- | --- |
| 400 | Invalid request parameters |
| 401 | Missing or invalid API key |
| 403 | Access not allowed for current plan |
| 404 | Resource not found |
| 429 | Rate limit exceeded |
| 500 | Internal server error |
| 503 | Temporary service unavailability |


## Error Response Structure

Errors are returned as JSON.

Examples of possible error responses:

### Validation Error (400)


```
{
  "field": "platform",
  "message": "Invalid platform value"
}
```

### Authentication Error (401)


```
{
  "detail": "Authentication credentials were not provided."
}
```

### Rate Limit Exceeded (429)


```
{
  "message": "Rate limit exceeded. Please retry later."
}
```

## Client Recommendations

- Always inspect the HTTP status code first.
- Do not retry 4xx errors unless the request is modified.
- Retry transient errors (429, 5xx) using exponential backoff.