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

# Rate Limits

## List Workspace Rate Limits

`RateLimitListPage organization().workspaces().rateLimits().list(params = RateLimitListParams.none(), requestOptions = RequestOptions.none())`

**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

- `RateLimitListParams params`

  - `Optional<String> workspaceId` (path parameter)

    The ID of the workspace.

  - `Optional<GroupType> groupType` (query parameter)

    Filter by group type.

    - `BATCH("batch")`

    - `FILES("files")`

    - `MODEL_GROUP("model_group")`

    - `SKILLS("skills")`

    - `TOKEN_COUNT("token_count")`

    - `WEB_SEARCH("web_search")`

  - `Optional<Boolean> includeInherited` (query parameter)

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

  - `Optional<Long> limit` (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

  - `Optional<String> page` (query parameter)

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

### Returns

- `class WorkspaceRateLimit`

  - `JsonValue type = "workspace_rate_limit"`

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

  - `Group group`

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

    - `class OrganizationRateLimitModelGroup`

      - `JsonValue type = "model_group"`

        Always `model_group`: a family of models.

      - `String id`

        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.

      - `String displayName`

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

    - `class OrganizationRateLimitBatchGroup`

      - `JsonValue type = "batch"`

        Always `batch`: the Message Batches API.

      - `String id`

        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`

      - `JsonValue type = "token_count"`

        Always `token_count`: the Token Count API.

      - `String id`

        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`

      - `JsonValue type = "files"`

        Always `files`: the Files API.

      - `String id`

        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`

      - `JsonValue type = "skills"`

        Always `skills`: the Skills API.

      - `String id`

        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`

      - `JsonValue type = "web_search"`

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

      - `String id`

        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.

  - `List<WorkspaceRateLimitValue> limits`

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

    - `String type`

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

    - `Optional<Long> orgLimit`

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

    - `Source source`

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

      - `class WorkspaceRateLimitWorkspaceSource`

        - `JsonValue type = "workspace"`

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

      - `class WorkspaceRateLimitOrganizationSource`

        - `JsonValue type = "organization"`

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

    - `long value`

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

  - `Optional<List<String>> models`

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

  - `String rateLimitId`

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

  - `String workspaceId`

    ID of the Workspace this entry applies to.

### Example

```java
package com.anthropic.example;

import com.anthropic.client.AnthropicClient;
import com.anthropic.client.okhttp.AnthropicOkHttpClient;
import com.anthropic.models.organization.workspaces.ratelimits.RateLimitListPage;
import com.anthropic.models.organization.workspaces.ratelimits.RateLimitListParams;

public final class Main {
    private Main() {}

    public static void main(String[] args) {
        AnthropicClient client = AnthropicOkHttpClient.fromEnv();

        RateLimitListPage page = client.organization().workspaces().rateLimits().list("workspace_id");
    }
}
```

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

  - `JsonValue type = "workspace_rate_limit"`

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

  - `Group group`

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

    - `class OrganizationRateLimitModelGroup`

      - `JsonValue type = "model_group"`

        Always `model_group`: a family of models.

      - `String id`

        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.

      - `String displayName`

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

    - `class OrganizationRateLimitBatchGroup`

      - `JsonValue type = "batch"`

        Always `batch`: the Message Batches API.

      - `String id`

        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`

      - `JsonValue type = "token_count"`

        Always `token_count`: the Token Count API.

      - `String id`

        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`

      - `JsonValue type = "files"`

        Always `files`: the Files API.

      - `String id`

        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`

      - `JsonValue type = "skills"`

        Always `skills`: the Skills API.

      - `String id`

        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`

      - `JsonValue type = "web_search"`

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

      - `String id`

        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.

  - `List<WorkspaceRateLimitValue> limits`

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

    - `String type`

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

    - `Optional<Long> orgLimit`

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

    - `Source source`

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

      - `class WorkspaceRateLimitWorkspaceSource`

        - `JsonValue type = "workspace"`

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

      - `class WorkspaceRateLimitOrganizationSource`

        - `JsonValue type = "organization"`

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

    - `long value`

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

  - `Optional<List<String>> models`

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

  - `String rateLimitId`

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

  - `String workspaceId`

    ID of the Workspace this entry applies to.

### Workspace Rate Limit Organization Source

- `class WorkspaceRateLimitOrganizationSource`

  - `JsonValue type = "organization"`

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

### Workspace Rate Limit Value

- `class WorkspaceRateLimitValue`

  - `String type`

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

  - `Optional<Long> orgLimit`

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

  - `Source source`

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

    - `class WorkspaceRateLimitWorkspaceSource`

      - `JsonValue type = "workspace"`

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

    - `class WorkspaceRateLimitOrganizationSource`

      - `JsonValue type = "organization"`

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

  - `long value`

    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`

  - `JsonValue type = "workspace"`

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