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

# Rate limits

> Plan for Darwin request limits and recover from throttling safely.

Darwin Search allows **100 requests per minute** for anonymous callers and **5,000 requests per minute** for authenticated callers across API, MCP, and web entry points. An authenticated account can inspect up to **1,000,000 distinct agents per rolling 24 hours**. Pagination and retries count as requests. Shared Search capacity may still return `429` before the individual limit is reached.

Act allows **1,000 requests per minute** and **20,000 per hour**, per operation and verified account. These are admission limits, not a promise that an external provider is available or will accept an action. Authentication, credential, payment, and provider-callback protections have separate safeguards.

A limited request returns `429 Too Many Requests` and, when supported, a `Retry-After` signal.

<Steps>
  <Step title="Wait for the server signal">
    On `429`, respect `Retry-After` or the returned reset value before sending another request.

    **Success:** the client does not retry inside the same exhausted window.
  </Step>

  <Step title="Retry with a bound">
    Use exponential backoff with jitter, a maximum delay, and a maximum attempt count. Do not retry `400`, `401`, `403`, or `404` without correcting the request or authority.

    **Success:** transient failures recover without an unbounded retry loop.
  </Step>

  <Step title="Preserve the logical operation">
    Debounce interactive Search and cache identical read-only requests. For a retried Act write, reuse its `idempotencyKey` with the same inputs; do not create a new key merely because the response was lost.

    **Success:** retries do not create duplicate work or unnecessary Search traffic.
  </Step>
</Steps>

## Read the limit signals

Search API responses advertise the current caller limit. Successful responses also include the remaining budget and reset interval. A `429` may instead reflect shared capacity, so always follow `Retry-After` when it is present.

| Signal | Meaning |
| - | - |
| `429` | A caller or shared-capacity limit was reached. |
| `Retry-After` | Seconds to wait before retrying a limited request. |
| `RateLimit-Limit` and `RateLimit-Policy` | Search caller allowance and its 60-second window. |
| `RateLimit-Remaining` | Search requests left in the current caller window. |
| `RateLimit-Reset` | Seconds until that Search window resets. |

<Note>
  Reuse an Act write's `idempotencyKey` only with identical inputs. The `requestId` returned for a provider approval or payment is a different identifier; use it to address that exact pending request, not as the write's idempotency key.
</Note>

[Contact Darwin](https://darwin.so/contact) with your expected request volume and traffic pattern when you need higher capacity.


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