# Rate limits

> BloomText API rate limits, rate limit headers, and how to stay under them.

Source: https://www.bloomtext.com/developers/api/rate-limits/

Each organization can make **60 requests per minute**, with bursts of up to **10 requests per second**. Limits are shared by every key in the organization.

## Rate limit headers

Every response tells you where you stand:

| Header | Meaning |
| --- | --- |
| `RateLimit-Limit` | Requests allowed per minute. |
| `RateLimit-Remaining` | Requests left in the current window. |
| `RateLimit-Reset` | Seconds until the window resets. |
| `Retry-After` | On `429` responses only: whole seconds to wait before retrying. |

```http filename="Response · 429 Too Many Requests"
HTTP/1.1 429 Too Many Requests
Content-Type: application/problem+json
Retry-After: 12
RateLimit-Limit: 60
RateLimit-Remaining: 0
RateLimit-Reset: 12
```

## Staying under the limit

- **Use webhooks instead of polling.** A single [webhook](https://www.bloomtext.com/developers/api/webhooks/) replaces dozens of list requests. If you must poll, wait at least 15 seconds between polls of the same conversation.
- **Use conditional requests.** Send `If-None-Match` with the last `ETag` you received. Unchanged resources return `304 Not Modified`.
- **Page with `page[limit]=100`.** Fewer, larger pages. See [Pagination](https://www.bloomtext.com/developers/api/pagination/).
- **Back off exponentially** after a `429` or `503`, starting from `Retry-After`.
- **Spread batch jobs out.** Sending 500 reminders at once takes about 9 minutes at 60 per minute. Queue them and send at a steady rate.

> **Note:** Need a higher limit for a large organization? Mention it when you [request API access](https://calendly.com/tyler-bloom/bloomtext-homepage-demo-request?utm_campaign=api-access).
