# Rate limits

> Each API key may run a few conversions at the same time; extra requests get 429 too_many_concurrent with Retry-After.

## Concurrent conversions

Each API key may have **5 conversions in progress** at the same time. The next one gets:

```http
HTTP/1.1 429 Too Many Requests
Retry-After: 5
Content-Type: application/json; charset=utf-8

{"error":{"code":"too_many_concurrent","message":"Too many conversions in progress for this API key (max 5)."}}
```

Nothing is reserved or charged for it. Wait the number of seconds in `Retry-After`, then retry. To convert more files in parallel, queue them on your side, or use separate keys for separate workloads (all keys of an account share one wallet).

[`POST /v1/quote`](https://md.tlelabs.com/docs/quote/) reserves nothing, so it does not count toward this limit. [`GET /v1/health`](https://md.tlelabs.com/docs/health-and-status/) is never rate limited.

## Retrying

- `429`: wait for `Retry-After`, then retry.
- `500`, `502`, `503`: retry with exponential backoff. For a `503` with `details.request_id`, check whether you were charged first ([Errors](https://md.tlelabs.com/docs/errors/#charging-on-errors)).
- `4xx` other than `429`: fix the request; retrying unchanged gets the same answer.

The API may also limit request rates at the network edge. Treat any `429` the same way: back off and honor `Retry-After` when it is present.
