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

# Rate limits

> Each API key can make 120 requests per minute by default.

## Limits

* **Per key:** 120 requests per rolling 60-second window by default. Pineyard can set a different limit for your
  workspace; ask your account team if you need more.
* The limit is shared across every endpoint the key calls: `/v1` and the workspace API count against the same budget.
* **Per IP address:** up to 300 **failed-authentication** requests per minute (missing, unknown or revoked keys).
  Successful requests do not count towards it.

## Response headers

Responses include the standard `RateLimit` and `RateLimit-Policy` headers
([IETF draft 7](https://datatracker.ietf.org/doc/draft-ietf-httpapi-ratelimit-headers/07/)), which tell you how
many requests are left in the current window and when it resets.

## When you exceed the limit

The request is rejected with `429` and a `Retry-After` header (seconds):

```json theme={null}
{ "error": "rate_limited", "requestId": "5b0b6c1e-0000-4000-8000-000000000000" }
```

Wait for `Retry-After` seconds, then retry. Rejected requests are not processed: a `429` on an endpoint that
requires an [`Idempotency-Key`](/concepts/idempotency) can be retried with the **same** key.

<Tip>
  Spread bulk work out instead of bursting. To load many leads into a campaign, add contacts in batches
  ([`POST /campaigns/{id}/contacts`](/api-reference/add-contacts-to-a-campaign)) rather than one request per lead.
</Tip>


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