---
title: Rate Limits
url: https://platform.claude.com/docs/en/api/typescript/organization/rate_limits
---

# Rate Limits

## List Organization Rate Limits

`client.organization.rateLimits.list(query?, options?): PageCursor<OrganizationRateLimit>`

**GET** `/v1/organizations/rate_limits`

List Messages API rate limits for your organization.

Each entry corresponds to one rate-limit group (either a model family
or an API-surface category such as the Message Batches API or the web
search tool) and contains the set of limiter values that apply to it.

When `limit` is omitted, every matching entry is returned in a single
page; when `limit` truncates the result, follow `next_page` to fetch
the remaining entries.

### Parameters

- `query: RateLimitListParams`

  - `group_type?: "batch" | "files" | "model_group" | 3 more | null` (query parameter)

    Filter by group type.

    - `"batch"`

    - `"files"`

    - `"model_group"`

    - `"skills"`

    - `"token_count"`

    - `"web_search"`

  - `limit?: number | null` (query parameter)

    Maximum number of items to return per page. Ranges from `1` to `1000`.

    When omitted, every remaining entry is returned in a single page and `next_page` is `null`.

    minimum: 1, maximum: 1000

  - `model?: string | null` (query parameter)

    Filter to the single entry containing this model. Accepts full model names and aliases. Returns 404 if the model is not found or has no rate limits for this organization.

  - `page?: string | null` (query parameter)

    Opaque cursor from a previous response's `next_page`.

### Returns

- `interface OrganizationRateLimit`

  - `type: "rate_limit"`

    Object type. Always `rate_limit` for organization rate-limit entries.

    default: rate_limit

  - `id: string`

    Identifier of this rate-limit entry. It is stable within the organization and differs between organizations; the group's own identifier is `group.id`.

  - `group: OrganizationRateLimitModelGroup | OrganizationRateLimitBatchGroup | OrganizationRateLimitTokenCountGroup | 3 more`

    The rate-limit group this entry's limits apply to. Its `type` equals `group_type`.

    - `interface OrganizationRateLimitModelGroup`

      - `type: "model_group"`

        Always `model_group`: a family of models.

        default: model_group

      - `id: string`

        Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization.

      - `display_name: string`

        Human-readable name of the model group (for example, `Claude Sonnet 4.x`). For display only; it may change.

    - `interface OrganizationRateLimitBatchGroup`

      - `type: "batch"`

        Always `batch`: the Message Batches API.

        default: batch

      - `id: string`

        Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization.

    - `interface OrganizationRateLimitTokenCountGroup`

      - `type: "token_count"`

        Always `token_count`: the Token Count API.

        default: token_count

      - `id: string`

        Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization.

    - `interface OrganizationRateLimitFilesGroup`

      - `type: "files"`

        Always `files`: the Files API.

        default: files

      - `id: string`

        Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization.

    - `interface OrganizationRateLimitSkillsGroup`

      - `type: "skills"`

        Always `skills`: the Skills API.

        default: skills

      - `id: string`

        Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization.

    - `interface OrganizationRateLimitWebSearchGroup`

      - `type: "web_search"`

        Always `web_search`: the Messages API web search tool.

        default: web_search

      - `id: string`

        Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization.

  - `limits: Array<OrganizationRateLimitValue>`

    The limiter values that apply to this group.

    - `type: string`

      The limiter type (for example, `requests_per_minute` or `input_tokens_per_minute`).

    - `value: number`

      The configured limit value for this limiter type.

  - `models: Array<string> | null`

    Model names this entry's limits apply to, including aliases. `null` when `group_type` is not `"model_group"`.

### Example

```typescript
import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({
  apiKey: process.env["ANTHROPIC_API_KEY"] // This is the default and can be omitted
});

// Automatically fetches more pages as needed.
for await (const organizationRateLimit of client.organization.rateLimits.list()) {
  console.log(organizationRateLimit.id);
}
```

#### Response (200)

```json
{
  "data": [
    {
      "id": "id",
      "group": {
        "id": "id",
        "display_name": "display_name",
        "type": "model_group"
      },
      "group_type": "batch",
      "limits": [
        {
          "type": "type",
          "value": 0
        }
      ],
      "models": [
        "string"
      ],
      "type": "rate_limit"
    }
  ],
  "next_page": "next_page"
}
```

## Domain types

### Organization Rate Limit

- `interface OrganizationRateLimit`

  - `type: "rate_limit"`

    Object type. Always `rate_limit` for organization rate-limit entries.

    default: rate_limit

  - `id: string`

    Identifier of this rate-limit entry. It is stable within the organization and differs between organizations; the group's own identifier is `group.id`.

  - `group: OrganizationRateLimitModelGroup | OrganizationRateLimitBatchGroup | OrganizationRateLimitTokenCountGroup | 3 more`

    The rate-limit group this entry's limits apply to. Its `type` equals `group_type`.

    - `interface OrganizationRateLimitModelGroup`

      - `type: "model_group"`

        Always `model_group`: a family of models.

        default: model_group

      - `id: string`

        Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization.

      - `display_name: string`

        Human-readable name of the model group (for example, `Claude Sonnet 4.x`). For display only; it may change.

    - `interface OrganizationRateLimitBatchGroup`

      - `type: "batch"`

        Always `batch`: the Message Batches API.

        default: batch

      - `id: string`

        Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization.

    - `interface OrganizationRateLimitTokenCountGroup`

      - `type: "token_count"`

        Always `token_count`: the Token Count API.

        default: token_count

      - `id: string`

        Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization.

    - `interface OrganizationRateLimitFilesGroup`

      - `type: "files"`

        Always `files`: the Files API.

        default: files

      - `id: string`

        Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization.

    - `interface OrganizationRateLimitSkillsGroup`

      - `type: "skills"`

        Always `skills`: the Skills API.

        default: skills

      - `id: string`

        Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization.

    - `interface OrganizationRateLimitWebSearchGroup`

      - `type: "web_search"`

        Always `web_search`: the Messages API web search tool.

        default: web_search

      - `id: string`

        Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization.

  - `limits: Array<OrganizationRateLimitValue>`

    The limiter values that apply to this group.

    - `type: string`

      The limiter type (for example, `requests_per_minute` or `input_tokens_per_minute`).

    - `value: number`

      The configured limit value for this limiter type.

  - `models: Array<string> | null`

    Model names this entry's limits apply to, including aliases. `null` when `group_type` is not `"model_group"`.

### Organization Rate Limit Batch Group

- `interface OrganizationRateLimitBatchGroup`

  - `type: "batch"`

    Always `batch`: the Message Batches API.

    default: batch

  - `id: string`

    Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization.

### Organization Rate Limit Files Group

- `interface OrganizationRateLimitFilesGroup`

  - `type: "files"`

    Always `files`: the Files API.

    default: files

  - `id: string`

    Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization.

### Organization Rate Limit Model Group

- `interface OrganizationRateLimitModelGroup`

  - `type: "model_group"`

    Always `model_group`: a family of models.

    default: model_group

  - `id: string`

    Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization.

  - `display_name: string`

    Human-readable name of the model group (for example, `Claude Sonnet 4.x`). For display only; it may change.

### Organization Rate Limit Skills Group

- `interface OrganizationRateLimitSkillsGroup`

  - `type: "skills"`

    Always `skills`: the Skills API.

    default: skills

  - `id: string`

    Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization.

### Organization Rate Limit Token Count Group

- `interface OrganizationRateLimitTokenCountGroup`

  - `type: "token_count"`

    Always `token_count`: the Token Count API.

    default: token_count

  - `id: string`

    Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization.

### Organization Rate Limit Value

- `interface OrganizationRateLimitValue`

  - `type: string`

    The limiter type (for example, `requests_per_minute` or `input_tokens_per_minute`).

  - `value: number`

    The configured limit value for this limiter type.

### Organization Rate Limit Web Search Group

- `interface OrganizationRateLimitWebSearchGroup`

  - `type: "web_search"`

    Always `web_search`: the Messages API web search tool.

    default: web_search

  - `id: string`

    Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization.
