> ## Documentation Index
> Fetch the complete documentation index at: https://docs.parzo.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Errors

> HTTP status codes and error handling.

## Error format

All errors return a JSON body:

```json theme={null}
{
  "error": "quota_exceeded",
  "message": "Monthly quota of 100 documents exhausted. Upgrade your plan to continue."
}
```

## Status codes

| Status | Meaning                                                        |
| ------ | -------------------------------------------------------------- |
| `200`  | Success                                                        |
| `202`  | Job accepted (async processing)                                |
| `400`  | Bad request — missing or malformed parameters                  |
| `401`  | Unauthorized — invalid or missing API key                      |
| `404`  | Not found — job ID does not exist or belongs to another tenant |
| `413`  | File too large — exceeds 50MB limit                            |
| `422`  | Unprocessable — file is not a valid PDF                        |
| `429`  | Quota exceeded or rate limit hit                               |
| `500`  | Internal server error — retry after a few seconds              |

## Rate limits

| Plan    | Requests/minute |
| ------- | --------------- |
| Free    | 10              |
| Starter | 30              |
| Growth  | 100             |
| Scale   | 500             |

Rate limit headers are included in every response:

```
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 87
X-RateLimit-Reset: 1680000060
```
