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

# Rate Limits

## List Workspace Rate Limits

`organization.workspaces.rate_limits.list(workspace_id, **kwargs) -> PageCursor<WorkspaceRateLimit>`

**GET** `/v1/organizations/workspaces/{workspace_id}/rate_limits`

List a workspace's rate limits.

By default, returns only the groups and limiter types that have a
workspace-level override. With `include_inherited=true`, returns every
group with organization-level limits the workspace can see, listing for
each the values it inherits from the organization as well as its own
overrides. Each value's `source` says which it is.

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

- `workspace_id: String` (path parameter)

  The ID of the workspace.

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

  Filter by group type.

  - `:batch`

  - `:files`

  - `:model_group`

  - `:skills`

  - `:token_count`

  - `:web_search`

- `include_inherited: bool` (query parameter)

  Also list the limiter values the workspace inherits from the organization, including groups with no workspace-level override.

- `limit: Integer` (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

- `page: String` (query parameter)

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

### Returns

- `class WorkspaceRateLimit`

  - `type: :workspace_rate_limit`

    Object type. Always `workspace_rate_limit` for workspace rate-limit entries.

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

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

    - `class OrganizationRateLimitModelGroup`

      - `type: :model_group`

        Always `model_group`: a family of models.

      - `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.

    - `class OrganizationRateLimitBatchGroup`

      - `type: :batch`

        Always `batch`: the Message Batches API.

      - `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.

    - `class OrganizationRateLimitTokenCountGroup`

      - `type: :token_count`

        Always `token_count`: the Token Count API.

      - `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.

    - `class OrganizationRateLimitFilesGroup`

      - `type: :files`

        Always `files`: the Files API.

      - `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.

    - `class OrganizationRateLimitSkillsGroup`

      - `type: :skills`

        Always `skills`: the Skills API.

      - `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.

    - `class OrganizationRateLimitWebSearchGroup`

      - `type: :web_search`

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

      - `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[WorkspaceRateLimitValue]`

    The workspace's limiter values for this group. By default only the limiter types with a workspace-level override are listed. With `include_inherited` set to `true`, the limiter types the workspace inherits from the organization are listed too, each marked by `source`.

    - `type: String`

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

    - `org_limit: Integer`

      The organization-level value for the same limiter type, for reference. `null` when the organization has no limit configured for this limiter type.

    - `source: WorkspaceRateLimitWorkspaceSource | WorkspaceRateLimitOrganizationSource`

      Where `value` comes from. `organization` values are listed only when `include_inherited` is `true`, and then `value` equals `org_limit`.

      - `class WorkspaceRateLimitWorkspaceSource`

        - `type: :workspace`

          Always `workspace`: a workspace-level override is stored.

      - `class WorkspaceRateLimitOrganizationSource`

        - `type: :organization`

          Always `organization`: no workspace-level override is stored, so the organization's value applies.

    - `value: Integer`

      The workspace's value for this limiter type: the workspace-level override when `source.type` is `workspace`, otherwise the organization's value.

  - `models: Array[String]`

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

  - `rate_limit_id: String`

    The `id` of the organization's RateLimit entry this entry applies to.

  - `workspace_id: String`

    ID of the Workspace this entry applies to.

### Example

```ruby
require "anthropic"

anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key")

page = anthropic.organization.workspaces.rate_limits.list("workspace_id")

puts(page)
```

#### Response (200)

```json
{
  "data": [
    {
      "group": {
        "id": "id",
        "display_name": "display_name",
        "type": "model_group"
      },
      "group_type": "batch",
      "limits": [
        {
          "org_limit": 0,
          "source": {
            "type": "workspace"
          },
          "type": "type",
          "value": 0
        }
      ],
      "models": [
        "string"
      ],
      "rate_limit_id": "rate_limit_id",
      "type": "workspace_rate_limit",
      "workspace_id": "workspace_id"
    }
  ],
  "next_page": "next_page"
}
```

## Domain types

### Workspace Rate Limit

- `class WorkspaceRateLimit`

  - `type: :workspace_rate_limit`

    Object type. Always `workspace_rate_limit` for workspace rate-limit entries.

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

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

    - `class OrganizationRateLimitModelGroup`

      - `type: :model_group`

        Always `model_group`: a family of models.

      - `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.

    - `class OrganizationRateLimitBatchGroup`

      - `type: :batch`

        Always `batch`: the Message Batches API.

      - `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.

    - `class OrganizationRateLimitTokenCountGroup`

      - `type: :token_count`

        Always `token_count`: the Token Count API.

      - `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.

    - `class OrganizationRateLimitFilesGroup`

      - `type: :files`

        Always `files`: the Files API.

      - `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.

    - `class OrganizationRateLimitSkillsGroup`

      - `type: :skills`

        Always `skills`: the Skills API.

      - `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.

    - `class OrganizationRateLimitWebSearchGroup`

      - `type: :web_search`

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

      - `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[WorkspaceRateLimitValue]`

    The workspace's limiter values for this group. By default only the limiter types with a workspace-level override are listed. With `include_inherited` set to `true`, the limiter types the workspace inherits from the organization are listed too, each marked by `source`.

    - `type: String`

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

    - `org_limit: Integer`

      The organization-level value for the same limiter type, for reference. `null` when the organization has no limit configured for this limiter type.

    - `source: WorkspaceRateLimitWorkspaceSource | WorkspaceRateLimitOrganizationSource`

      Where `value` comes from. `organization` values are listed only when `include_inherited` is `true`, and then `value` equals `org_limit`.

      - `class WorkspaceRateLimitWorkspaceSource`

        - `type: :workspace`

          Always `workspace`: a workspace-level override is stored.

      - `class WorkspaceRateLimitOrganizationSource`

        - `type: :organization`

          Always `organization`: no workspace-level override is stored, so the organization's value applies.

    - `value: Integer`

      The workspace's value for this limiter type: the workspace-level override when `source.type` is `workspace`, otherwise the organization's value.

  - `models: Array[String]`

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

  - `rate_limit_id: String`

    The `id` of the organization's RateLimit entry this entry applies to.

  - `workspace_id: String`

    ID of the Workspace this entry applies to.

### Workspace Rate Limit Organization Source

- `class WorkspaceRateLimitOrganizationSource`

  - `type: :organization`

    Always `organization`: no workspace-level override is stored, so the organization's value applies.

### Workspace Rate Limit Value

- `class WorkspaceRateLimitValue`

  - `type: String`

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

  - `org_limit: Integer`

    The organization-level value for the same limiter type, for reference. `null` when the organization has no limit configured for this limiter type.

  - `source: WorkspaceRateLimitWorkspaceSource | WorkspaceRateLimitOrganizationSource`

    Where `value` comes from. `organization` values are listed only when `include_inherited` is `true`, and then `value` equals `org_limit`.

    - `class WorkspaceRateLimitWorkspaceSource`

      - `type: :workspace`

        Always `workspace`: a workspace-level override is stored.

    - `class WorkspaceRateLimitOrganizationSource`

      - `type: :organization`

        Always `organization`: no workspace-level override is stored, so the organization's value applies.

  - `value: Integer`

    The workspace's value for this limiter type: the workspace-level override when `source.type` is `workspace`, otherwise the organization's value.

### Workspace Rate Limit Workspace Source

- `class WorkspaceRateLimitWorkspaceSource`

  - `type: :workspace`

    Always `workspace`: a workspace-level override is stored.
