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

# Rate Limiting

> Request quotas and how to handle 429 responses

The cNGN API rate-limits requests **per API key**, so each merchant has an independent budget regardless of source IP.

| Limit                        | Value                             |
| ---------------------------- | --------------------------------- |
| Requests                     | **20 per 60 seconds** per API key |
| Block duration when exceeded | 60 seconds                        |

## When you exceed the limit

The API responds with HTTP `429`:

```json theme={null}
{
  "status": 429,
  "message": "Too many requests. Please try again later."
}
```

Once blocked, all requests with that key are rejected for 60 seconds.

## Best practices

<Tip>
  * **Back off on 429**: wait at least 60 seconds before retrying; retrying earlier extends nothing and wastes quota.
  * **Cache stable data**: bank lists ([Get Banks](/api-reference/get-banks)) and supported networks ([Get Networks](/api-reference/get-networks)) change rarely; cache them for hours, not seconds.
  * **Batch reads**: use pagination with a higher `limit` on [Get Transactions](/api-reference/get-transactions) instead of many small pages.
  * **Poll responsibly**: for withdrawal status, poll [Verify Withdrawal](/api-reference/verify-withdrawal) with exponential backoff rather than a tight loop.
</Tip>
