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

# Rate limits

> How many calls each group of endpoints takes, per minute and per day.

Rate limits count calls per organization: every key of the organization shares them. Each group of endpoints has a limit per minute and most have one per UTC day. A call over a limit answers `429` with an empty body and a `Retry-After` header in seconds.

| Group | Endpoints | Per minute | Per day |
| - | - | - | - |
| `people_search` | `POST /v1/people/search` | 20 | 1,000 |
| `company_search` | `POST /v1/companies/search` | 20 | 1,000 |
| `people_count` | `POST /v1/people/count` | 60 | 10,000 |
| `company_count` | `POST /v1/companies/count` | 60 | 10,000 |
| `search_lookups` | Filter values and autocomplete, for people and companies | 60 | 5,000 |
| `company_resolve` | `POST /v1/companies/resolve` | 120 | 10,000 |
| `company_people` | `POST /v1/companies/people` | 120 | 10,000 |
| `saved_searches` | Every saved search endpoint, running one included | 60 | 5,000 |
| `jobs` | `GET /v1/jobs/{jobId}` | 120 | 10,000 |
| `account` | `GET /v1/me`, the balance, ledger, prices, usage and requests | 120 | 10,000 |
| `limits` | `GET /v1/limits` | 60 | |
| `revoke` | `POST /v1/me/revoke` | 10 | |

Minute windows start on the minute, and day windows at midnight UTC.

## Headers

Every answer to a counted call carries the state of the route's limit with the fewest calls left:

| Header | What it holds |
| - | - |
| `RateLimit-Limit` | The calls that limit allows in its window. |
| `RateLimit-Remaining` | The calls left in the window. |
| `RateLimit-Reset` | Seconds until the window resets. |
| `Retry-After` | On a `429` only: seconds to wait before calling again. |

## See every limit

`GET /v1/limits` answers every limit with what is left of it, and the calling key's spend today against its daily cap. It has its own limit, so reading the limits never spends them.

```json theme={null}
{
  "rateLimits": [
    { "group": "people_search", "limit": 20, "windowSeconds": 60, "remaining": 19, "resetsAt": "2026-11-14T10:03:00.000Z" },
    { "group": "people_search", "limit": 1000, "windowSeconds": 86400, "remaining": 997, "resetsAt": "2026-11-15T00:00:00.000Z" }
  ],
  "keyDailySpend": { "spentUsd": "0.001800", "capUsd": "5.000000", "remainingUsd": "4.998200", "resetsAt": "2026-11-15T00:00:00.000Z" }
}
```

## Handling a 429

Wait the seconds in `Retry-After`, then send the call again. A `429` is never charged. Calls without a valid key are limited by IP address instead of by organization.


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