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

# Limits

> Rate limits, document size, and timeouts.

A few limits keep the API fast and fair for everyone. Most integrations never hit them, but it's worth knowing where they are.

## Rate limit

Each organization can make up to **10 requests per minute** to the parse endpoint. The limit is shared across all of your organization's API keys.

If you exceed it, the request is rejected with a [`429`](/concepts/errors) status and a `Retry-After` header telling you how many seconds to wait:

```text theme={null}
HTTP/1.1 429 Too Many Requests
Retry-After: 42
```

Respect `Retry-After` and retry after that delay. Building in exponential backoff is good practice for any production integration.

## Document size

A single document can be at most **50 pages**. Larger documents are rejected with a [`413`](/concepts/errors) status before any parsing happens, so an oversized file never consumes credits.

If you need to parse a document over 50 pages, split it into smaller files and send them as separate requests.

## Timeouts

Parsing runs synchronously: the connection stays open until your document is fully processed and the response is returned. A document is parsed page by page, so larger files take longer — anywhere from a few seconds to a couple of minutes for a 50-page document.

Set a generous client-side timeout to avoid cutting off long requests. We recommend **at least 600 seconds** for larger documents:

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST https://api.parserouter.com/v1/mineru/parse \
    --max-time 600 \
    -H "Authorization: Bearer sk-pr-..." \
    -F "file=@large.pdf"
  ```

  ```python Python theme={null}
  requests.post(
      "https://api.parserouter.com/v1/mineru/parse",
      headers={"Authorization": "Bearer sk-pr-..."},
      files={"file": open("large.pdf", "rb")},
      timeout=600,
  )
  ```

  ```javascript JavaScript theme={null}
  const controller = new AbortController();
  const timeout = setTimeout(() => controller.abort(), 600_000);

  await fetch("https://api.parserouter.com/v1/mineru/parse", {
    method: "POST",
    headers: { Authorization: "Bearer sk-pr-..." },
    body: form,
    signal: controller.signal,
  });
  clearTimeout(timeout);
  ```
</CodeGroup>

## Summary

| Limit                                  | Value       |
| -------------------------------------- | ----------- |
| Requests per minute (per organization) | 10          |
| Maximum pages per document             | 50          |
| Recommended client timeout             | 600 seconds |
