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

# Rate limits

> Understand plan-based rate limiting for the Ingestly API.

Rate limits protect the platform from abuse and ensure fair usage across all organizations. Limits are enforced **per organization** (or per API key for API requests) and vary by subscription plan.

All endpoints, including API and dashboard, are subject to rate limits.

## API rate limits

The [webhook trigger](/api-reference/trigger-webhook) endpoint, the only public API endpoint, has the following limits:

| Plan     | Requests per minute |
| -------- | ------------------- |
| Free     | 10                  |
| Basic    | 60                  |
| Standard | 300                 |
| Advanced | 1,000               |

## Response headers

Every API response includes rate limit headers so you can track your usage:

| Header                | Description                                     |
| --------------------- | ----------------------------------------------- |
| `RateLimit-Limit`     | Total allowed requests in the current window    |
| `RateLimit-Remaining` | Requests remaining in the current window        |
| `RateLimit-Reset`     | Unix timestamp (seconds) when the window resets |

## Rate limit exceeded

When you exceed the rate limit, the API returns a `429 Too Many Requests` response with an additional `Retry-After` header indicating how many seconds to wait before retrying.

### Response headers

| Header                | Description                                     |
| --------------------- | ----------------------------------------------- |
| `Retry-After`         | Seconds until the rate limit window resets      |
| `RateLimit-Limit`     | Total allowed requests in the current window    |
| `RateLimit-Remaining` | `0`                                             |
| `RateLimit-Reset`     | Unix timestamp (seconds) when the window resets |

### Response body

The response body follows the [RFC 7807](https://tools.ietf.org/html/rfc7807) Problem Details format:

```json theme={null}
{
  "type": "https://tools.ietf.org/html/rfc6585#section-4",
  "title": "Too Many Requests",
  "status": 429,
  "detail": "You have exceeded the rate limit. Please try again later.",
  "instance": "/pipelines/3fa85f64-5717-4562-b3fc-2c963f66afa6/trigger",
  "traceId": "0HN3J7V8S8F5Q:00000001"
}
```

## Handling rate limits

* **Check headers proactively.** Monitor `RateLimit-Remaining` to avoid hitting the limit in the first place
* **Implement exponential backoff.** On a `429` response, wait for the duration in the `Retry-After` header, then retry with increasing delays if the request continues to fail
* **Spread requests over time.** Distribute requests evenly across the window instead of sending them in bursts
* **Upgrade your plan.** If you consistently hit rate limits, consider upgrading to a higher plan for increased limits. See [subscription](/admin/subscription) for details
