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

# Errors & Rate Limits

> HTTP status codes, error envelope, and retry guidance.

## Error envelope

When a request fails, the response shape is:

```json theme={null}
{
  "success": false,
  "request_id": "req_abc123",
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "Daily request quota reached (100 req/day on Free tier)."
  }
}
```

`request_id` is unique per request — include it when reporting issues.

## Status codes

| Code | Meaning | What to do |
| - | - | - |
| `200` | Success | — |
| `400` | Bad request — invalid params | Check the parameter table in [API Reference](/api-reference/introduction) |
| `401` | Unauthorized | Verify `X-API-Key` header is set and the key is valid |
| `402` | Payment required (Nanopayment) — returned on the x402 host, or with `Accept-Payment: x402` | Sign the chosen `accepts` option and retry with `PAYMENT-SIGNATURE`. See [Nanopayment](/nanopayment/quickstart#troubleshooting) for the x402 error codes |
| `403` | Forbidden — endpoint not in your plan | Upgrade on [Pricing](/pricing) |
| `404` | Endpoint or symbol not found; or `X402_NOT_SUPPORTED` when x402 headers are sent to a non-priced route | Check spelling, symbol format, or try [the screener](/skills/overview) |
| `429` | Rate limit exceeded | Back off with exponential delay; upgrade plan or use Nanopayment |
| `500` | Server error | Retry after 1–2s; if persistent, [email support](mailto:support@arrays.org) |

## Retry strategy

For idempotent GET requests:

1. **First retry**: wait 1 second
2. **Second retry**: wait 2 seconds
3. **Third retry**: wait 4 seconds
4. **Give up** and surface the error

Always include the `request_id` from the failed response when contacting support.

## Rate limits per plan

| Plan | Daily requests | Burst |
| - | - | - |
| Free | 100 | 10 req/s |
| Pro | 10,000 | 50 req/s |
| Enterprise | Custom | Custom |
| Nanopayment | Unlimited (pay-per-call) | 100 req/s |

<Tip>
  The Dashboard shows live usage. Set up a webhook alert at 80% of quota to avoid surprises.
</Tip>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.