---
"@context": https://schema.org
"@type": TechArticle
"@id": https://www.twilio.com/docs/cohorts/api/rate-limits#article
headline: Rate limits
description: Rate limits for the Twilio Cohorts API and how to handle a 429 response.
url: https://www.twilio.com/docs/cohorts/api/rate-limits
inLanguage: en
dateModified: 2026-09-15T09:58:28.000Z
author:
  "@type": Organization
  name: Twilio Developer Education Team
publisher:
  "@type": Organization
  name: Twilio
---

# Rate limits

## Limits by operation

| Operation                          | Limit                                       |
| ---------------------------------- | ------------------------------------------- |
| Create, update, or delete a Cohort | 50 requests per minute                      |
| List or fetch a Cohort             | 200 requests per minute                     |
| Create a Snapshot                  | 5 requests per minute, 100 requests per day |
| Delete a Snapshot                  | 50 requests per minute                      |
| List or fetch a Snapshot           | 200 requests per minute                     |
| List Snapshot Profiles             | 5000 requests per minute                    |

> \[!NOTE]
>
> The rate limits listed above apply strictly to direct REST API calls made with your Twilio API credentials. When downstream Twilio products, such as the Bulk Messaging API or Twilio Email API, evaluate a referenced cohort, snapshot evaluation is handled by internal execution queues and does not count against your account's API snapshot rate limit.

Snapshot creation has a lower limit than other operations because evaluating criteria triggers computation across your connected profile store. If you need to generate multiple snapshots, space out your requests rather than issuing them concurrently.

## Handling a 429 response

If you exceed a rate limit, Cohorts returns an HTTP `429 Too Many Requests` response formatted as an [RFC 9457](https://www.rfc-editor.org/rfc/rfc9457) Problem Details object, along with a `Retry-After` HTTP header indicating how many seconds to wait before retrying.

```json
{
  "title": "Rate limit exceeded",
  "status": 429,
  "detail": "You've exceeded the rate limit for this operation."
}
```

Respect the value in the `Retry-After` header rather than retrying immediately.
