Follow Discord
Sweep 09 Oct 2026 · 17:27Z Build v2.1.296 517 read Stable v2.1.287 Latest v2.1.296 Next v2.1.296 Feeds RSS JSON llms.txt llms-full.txt Unofficial
One change · api

rate-limits-api changedmanage-claude/rate-limits-api

Nearest release: v2.1.292, published 11 hours before this site recorded the change. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.

Recorded here
Lines+51added
Lines−51removed
From line 20 where the diff opens
First seen 14 Aug 2026 this site's first read of the page
Recorded edits9to this page, all time

The whole hunk

from line 20, old and new numbered
/
lines
from line 20
2020 **Admin API credentials required.** These endpoints are part of the Admin API. You can access them using an [Admin API key](https://platform.claude.com/docs/en/manage-claude/admin-api-keys), an OAuth token with the `org:admin` scope, or a personal or service account key that isn't scoped to a workspace; workspace API keys don't work. See [Authentication](https://platform.claude.com/docs/en/manage-claude/admin-api#authentication) for details.
2121</Check>
2222 
23The SDK and CLI examples on this page construct the default client, which reads the Admin API key from the `ANTHROPIC_API_KEY` environment variable. The SDKs expose these endpoints as `client.beta.organization.rate_limits` and `client.beta.organization.workspaces.rate_limits`; the Python, TypeScript, C#, Go, and Java list methods return an iterator that follows `next_page` for you, while the PHP, Ruby, and curl examples read one page.
23The SDK and CLI examples on this page construct the default client, which reads the Admin API key from the `ANTHROPIC_API_KEY` environment variable. The SDKs expose these endpoints as `client.organization.rate_limits` (typescript: `client.organization.rateLimits`; csharp, go: `client.Organization.RateLimits`; java: `client.organization().rateLimits()`; php: `$client->organization->rateLimits`) and `client.organization.workspaces.rate_limits` (typescript: `client.organization.workspaces.rateLimits`; csharp, go: `client.Organization.Workspaces.RateLimits`; java: `client.organization().workspaces().rateLimits()`; php: `$client->organization->workspaces->rateLimits`); the Python, TypeScript, C#, Go, and Java list methods return an iterator that follows `next_page` for you, while the PHP, Ruby, and curl examples read one page.
2424 
2525## Quick start
2626 
from line 34
3434 ```
3535 
3636 ```bash CLI
37 ant beta:organization:rate-limits list
37 ant organization:rate-limits list
3838 ```
3939 
4040 ```python Python
4141 client = anthropic.Anthropic()
4242 
43 rate_limits = client.beta.organization.rate_limits.list()
43 rate_limits = client.organization.rate_limits.list()
4444 
4545 for entry in rate_limits:
4646 models = f" ({', '.join(entry.models)})" if entry.models else ""
from line 52
5252 ```typescript TypeScript
5353 const client = new Anthropic();
5454 
55 const rateLimits = await client.beta.organization.rateLimits.list();
55 const rateLimits = await client.organization.rateLimits.list();
5656 
5757 for await (const entry of rateLimits) {
5858 const models = entry.models ? ` (${entry.models.join(", ")})` : "";
from line 66
6666 ```csharp C#
6767 AnthropicClient client = new();
6868 
69 var rateLimits = await client.Beta.Organization.RateLimits.List();
69 var rateLimits = await client.Organization.RateLimits.List();
7070 
7171 await foreach (var entry in rateLimits.Paginate())
7272 {
from line 82
8282 ```go Go
8383 client := anthropic.NewClient()
8484 
85 rateLimits := client.Beta.Organization.RateLimits.ListAutoPaging(context.Background(), anthropic.BetaOrganizationRateLimitListParams{})
85 rateLimits := client.Organization.RateLimits.ListAutoPaging(context.Background(), anthropic.OrganizationRateLimitListParams{})
8686 
8787 for rateLimits.Next() {
8888 entry := rateLimits.Current()
from line 103
103103 ```java Java
104104 AnthropicClient client = AnthropicOkHttpClient.fromEnv();
105105 
106 var rateLimits = client.beta().organization().rateLimits().list();
106 var rateLimits = client.organization().rateLimits().list();
107107 
108108 for (var entry : rateLimits.autoPager()) {
109109 var models = entry.models()
from line 119
119119 ```php PHP
120120 $client = new Client();
121121 
122 $rateLimits = $client->beta->organization->rateLimits->list();
122 $rateLimits = $client->organization->rateLimits->list();
123123 
124124 foreach ($rateLimits->data as $entry) {
125125 $models = $entry->models ? ' (' . implode(', ', $entry->models) . ')' : '';
from line 133
133133 ```ruby Ruby
134134 client = Anthropic::Client.new
135135 
136 rate_limits = client.beta.organization.rate_limits.list
136 rate_limits = client.organization.rate_limits.list
137137 
138138 rate_limits.data.each do |entry|
139139 models = entry.models ? " (#{entry.models.join(", ")})" : ""
from line 158
158158* **`models` list:** For `model_group` entries, the `models` field lists every model ID and alias that counts against that group's limits. Use this list to look up which group any model string falls under. For other group types, `models` is `null`.
159159* **`limits` list:** Each group carries a list of `{type, value}` pairs. The `type` field identifies the limiter (such as `requests_per_minute`, `input_tokens_per_minute`, or `output_tokens_per_minute`) and `value` is the configured limit. See [Rate limits](https://platform.claude.com/docs/en/api/rate-limits) for how each limiter is measured and enforced.
160160 
161For complete parameter details and response schemas, see the [Organization Rate Limits API reference](https://platform.claude.com/docs/en/api/beta/organization/rate_limits/list).
161For complete parameter details and response schemas, see the [Organization Rate Limits API reference](https://platform.claude.com/docs/en/api/organization/rate_limits/list).
162162 
163163### List all organization rate limits
164164 
from line 170
170170 ```
171171 
172172 ```bash CLI
173 ant beta:organization:rate-limits list
173 ant organization:rate-limits list
174174 ```
175175 
176176 ```python Python
177177 client = anthropic.Anthropic()
178178 
179 rate_limits = client.beta.organization.rate_limits.list()
179 rate_limits = client.organization.rate_limits.list()
180180 
181181 for entry in rate_limits:
182182 models = f" ({', '.join(entry.models)})" if entry.models else ""
from line 188
188188 ```typescript TypeScript
189189 const client = new Anthropic();
190190 
191 const rateLimits = await client.beta.organization.rateLimits.list();
191 const rateLimits = await client.organization.rateLimits.list();
192192 
193193 for await (const entry of rateLimits) {
194194 const models = entry.models ? ` (${entry.models.join(", ")})` : "";
from line 202
202202 ```csharp C#
203203 AnthropicClient client = new();
204204 
205 var rateLimits = await client.Beta.Organization.RateLimits.List();
205 var rateLimits = await client.Organization.RateLimits.List();
206206 
207207 await foreach (var entry in rateLimits.Paginate())
208208 {
from line 218
218218 ```go Go
219219 client := anthropic.NewClient()
220220 
221 rateLimits := client.Beta.Organization.RateLimits.ListAutoPaging(context.Background(), anthropic.BetaOrganizationRateLimitListParams{})
221 rateLimits := client.Organization.RateLimits.ListAutoPaging(context.Background(), anthropic.OrganizationRateLimitListParams{})
222222 
223223 for rateLimits.Next() {
224224 entry := rateLimits.Current()
from line 239
239239 ```java Java
240240 AnthropicClient client = AnthropicOkHttpClient.fromEnv();
241241 
242 var rateLimits = client.beta().organization().rateLimits().list();
242 var rateLimits = client.organization().rateLimits().list();
243243 
244244 for (var entry : rateLimits.autoPager()) {
245245 var models = entry.models()
from line 255
255255 ```php PHP
256256 $client = new Client();
257257 
258 $rateLimits = $client->beta->organization->rateLimits->list();
258 $rateLimits = $client->organization->rateLimits->list();
259259 
260260 foreach ($rateLimits->data as $entry) {
261261 $models = $entry->models ? ' (' . implode(', ', $entry->models) . ')' : '';
from line 269
269269 ```ruby Ruby
270270 client = Anthropic::Client.new
271271 
272 rate_limits = client.beta.organization.rate_limits.list
272 rate_limits = client.organization.rate_limits.list
273273 
274274 rate_limits.data.each do |entry|
275275 models = entry.models ? " (#{entry.models.join(", ")})" : ""
from line 344
344344 ```
345345 
346346 ```bash CLI
347 ant beta:organization:rate-limits list --model claude-opus-5
347 ant organization:rate-limits list --model claude-opus-5
348348 ```
349349 
350350 ```python Python
351351 client = anthropic.Anthropic()
352352 
353 rate_limits = client.beta.organization.rate_limits.list(model="claude-opus-5")
353 rate_limits = client.organization.rate_limits.list(model="claude-opus-5")
354354 
355355 for entry in rate_limits:
356356 models = f" ({', '.join(entry.models)})" if entry.models else ""
from line 362
362362 ```typescript TypeScript
363363 const client = new Anthropic();
364364 
365 const rateLimits = await client.beta.organization.rateLimits.list({ model: "claude-opus-5" });
365 const rateLimits = await client.organization.rateLimits.list({ model: "claude-opus-5" });
366366 
367367 for await (const entry of rateLimits) {
368368 const models = entry.models ? ` (${entry.models.join(", ")})` : "";
from line 376
376376 ```csharp C#
377377 AnthropicClient client = new();
378378 
379 var rateLimits = await client.Beta.Organization.RateLimits.List(new()
379 var rateLimits = await client.Organization.RateLimits.List(new()
380380 {
381381 Model = "claude-opus-5"
382382 });
from line 395
395395 ```go Go
396396 client := anthropic.NewClient()
397397 
398 rateLimits := client.Beta.Organization.RateLimits.ListAutoPaging(context.Background(), anthropic.BetaOrganizationRateLimitListParams{
398 rateLimits := client.Organization.RateLimits.ListAutoPaging(context.Background(), anthropic.OrganizationRateLimitListParams{
399399 Model: anthropic.String(anthropic.ModelClaudeOpus5),
400400 })
401401 
from line 416
416416 ```
417417 
418418 ```java Java
419 import com.anthropic.models.beta.organization.ratelimits.RateLimitListParams;
419 import com.anthropic.models.organization.ratelimits.RateLimitListParams;
420420 import com.anthropic.models.messages.Model;
421421 
422422 void main() {
from line 425
425425 var params = RateLimitListParams.builder()
426426 .model(Model.CLAUDE_OPUS_5.asString())
427427 .build();
428 var rateLimits = client.beta().organization().rateLimits().list(params);
428 var rateLimits = client.organization().rateLimits().list(params);
429429 
430430 for (var entry : rateLimits.autoPager()) {
431431 var models = entry.models()
from line 444
444444 
445445 $client = new Client();
446446 
447 $rateLimits = $client->beta->organization->rateLimits->list(
447 $rateLimits = $client->organization->rateLimits->list(
448448 model: Model::CLAUDE_OPUS_5->value,
449449 );
450450 
from line 460
460460 ```ruby Ruby
461461 client = Anthropic::Client.new
462462 
463 rate_limits = client.beta.organization.rate_limits.list(model: Anthropic::Model::CLAUDE_OPUS_5)
463 rate_limits = client.organization.rate_limits.list(model: Anthropic::Model::CLAUDE_OPUS_5)
464464 
465465 rate_limits.data.each do |entry|
466466 models = entry.models ? " (#{entry.models.join(", ")})" : ""
from line 484
484484* Within a group that is present, a limiter type that is absent from `limits[]` has no workspace override for that limiter. The workspace inherits the organization value for it.
485485* For each limiter that is present, `org_limit` is the organization-level value for the same limiter, or `null` if the organization has no configured limit for that limiter type.
486486 
487For complete parameter details and response schemas, see the [Workspace Rate Limits API reference](https://platform.claude.com/docs/en/api/beta/organization/workspaces/rate_limits/list).
487For complete parameter details and response schemas, see the [Workspace Rate Limits API reference](https://platform.claude.com/docs/en/api/organization/workspaces/rate_limits/list).
488488 
489489<Tip>
490 To retrieve your organization's workspace IDs, use the [List Workspaces](https://platform.claude.com/docs/en/api/beta/organization/workspaces/list) endpoint, or find them in the [Claude Console](https://platform.claude.com/settings/workspaces). The default workspace cannot have rate limit overrides, so it has no entry on this endpoint; use the organization endpoint to read its limits.
490 To retrieve your organization's workspace IDs, use the [List Workspaces](https://platform.claude.com/docs/en/api/organization/workspaces/list) endpoint, or find them in the [Claude Console](https://platform.claude.com/settings/workspaces). The default workspace cannot have rate limit overrides, so it has no entry on this endpoint; use the organization endpoint to read its limits.
491491</Tip>
492492 
493493<CodeGroup>
from line 498
498498 ```
499499 
500500 ```bash CLI
501 ant beta:organization:workspaces:rate-limits list \
501 ant organization:workspaces:rate-limits list \
502502 --workspace-id wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ
503503 ```
504504 
from line 505
505505 ```python Python
506506 client = anthropic.Anthropic()
507507 
508 rate_limits = client.beta.organization.workspaces.rate_limits.list(
508 rate_limits = client.organization.workspaces.rate_limits.list(
509509 "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ"
510510 )
511511 
from line 519
519519 ```typescript TypeScript
520520 const client = new Anthropic();
521521 
522 const rateLimits = await client.beta.organization.workspaces.rateLimits.list(
522 const rateLimits = await client.organization.workspaces.rateLimits.list(
523523 "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ"
524524 );
525525 
from line 535
535535 ```csharp C#
536536 AnthropicClient client = new();
537537 
538 var rateLimits = await client.Beta.Organization.Workspaces.RateLimits.List(
538 var rateLimits = await client.Organization.Workspaces.RateLimits.List(
539539 "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ"
540540 );
541541 
from line 553
553553 ```go Go
554554 client := anthropic.NewClient()
555555 
556 rateLimits := client.Beta.Organization.Workspaces.RateLimits.ListAutoPaging(
556 rateLimits := client.Organization.Workspaces.RateLimits.ListAutoPaging(
557557 context.Background(),
558558 "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ",
559 anthropic.BetaOrganizationWorkspaceRateLimitListParams{},
559 anthropic.OrganizationWorkspaceRateLimitListParams{},
560560 )
561561 
562562 for rateLimits.Next() {
from line 578
578578 ```java Java
579579 AnthropicClient client = AnthropicOkHttpClient.fromEnv();
580580 
581 var rateLimits = client.beta().organization().workspaces().rateLimits()
581 var rateLimits = client.organization().workspaces().rateLimits()
582582 .list("wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ");
583583 
584584 for (var entry : rateLimits.autoPager()) {
from line 595
595595 ```php PHP
596596 $client = new Client();
597597 
598 $rateLimits = $client->beta->organization->workspaces->rateLimits->list(
598 $rateLimits = $client->organization->workspaces->rateLimits->list(
599599 workspaceID: 'wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ',
600600 );
601601 
from line 612
612612 client = Anthropic::Client.new
613613 
614614 workspace_id = "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ"
615 rate_limits = client.beta.organization.workspaces.rate_limits.list(workspace_id)
615 rate_limits = client.organization.workspaces.rate_limits.list(workspace_id)
616616 
617617 rate_limits.data.each do |entry|
618618 models = entry.models ? " (#{entry.models.join(", ")})" : ""
from line 678
678678 ```
679679 
680680 ```bash CLI
681 ant beta:organization:rate-limits list --group-type batch
681 ant organization:rate-limits list --group-type batch
682682 ```
683683 
684684 ```python Python
685685 client = anthropic.Anthropic()
686686 
687 rate_limits = client.beta.organization.rate_limits.list(group_type="batch")
687 rate_limits = client.organization.rate_limits.list(group_type="batch")
688688 
689689 for entry in rate_limits:
690690 models = f" ({', '.join(entry.models)})" if entry.models else ""
from line 696
696696 ```typescript TypeScript
697697 const client = new Anthropic();
698698 
699 const rateLimits = await client.beta.organization.rateLimits.list({ group_type: "batch" });
699 const rateLimits = await client.organization.rateLimits.list({ group_type: "batch" });
700700 
701701 for await (const entry of rateLimits) {
702702 const models = entry.models ? ` (${entry.models.join(", ")})` : "";
from line 708
708708 ```
709709 
710710 ```csharp C#
711 using Anthropic.Models.Beta.Organization.RateLimits;
711 using Anthropic.Models.Organization.RateLimits;
712712 
713713 AnthropicClient client = new();
714714 
715 var rateLimits = await client.Beta.Organization.RateLimits.List(new()
715 var rateLimits = await client.Organization.RateLimits.List(new()
716716 {
717717 GroupType = GroupType.Batch
718718 });
from line 731
731731 ```go Go
732732 client := anthropic.NewClient()
733733 
734 rateLimits := client.Beta.Organization.RateLimits.ListAutoPaging(context.Background(), anthropic.BetaOrganizationRateLimitListParams{
735 GroupType: anthropic.BetaOrganizationRateLimitListParamsGroupTypeBatch,
734 rateLimits := client.Organization.RateLimits.ListAutoPaging(context.Background(), anthropic.OrganizationRateLimitListParams{
735 GroupType: anthropic.OrganizationRateLimitListParamsGroupTypeBatch,
736736 })
737737 
738738 for rateLimits.Next() {
from line 752
752752 ```
753753 
754754 ```java Java
755 import com.anthropic.models.beta.organization.ratelimits.RateLimitListParams;
755 import com.anthropic.models.organization.ratelimits.RateLimitListParams;
756756 
757757 void main() {
758758 AnthropicClient client = AnthropicOkHttpClient.fromEnv();
from line 760
760760 var params = RateLimitListParams.builder()
761761 .groupType(RateLimitListParams.GroupType.BATCH)
762762 .build();
763 var rateLimits = client.beta().organization().rateLimits().list(params);
763 var rateLimits = client.organization().rateLimits().list(params);
764764 
765765 for (var entry : rateLimits.autoPager()) {
766766 var models = entry.models()
from line 775
775775 ```
776776 
777777 ```php PHP
778 use Anthropic\Beta\Organization\RateLimits\RateLimitListParams\GroupType;
778 use Anthropic\Organization\RateLimits\RateLimitListParams\GroupType;
779779 // ...
780780 
781781 $client = new Client();
782782 
783 $rateLimits = $client->beta->organization->rateLimits->list(
783 $rateLimits = $client->organization->rateLimits->list(
784784 groupType: GroupType::BATCH,
785785 );
786786 
from line 796
796796 ```ruby Ruby
797797 client = Anthropic::Client.new
798798 
799 rate_limits = client.beta.organization.rate_limits.list(group_type: :batch)
799 rate_limits = client.organization.rate_limits.list(group_type: :batch)
800800 
801801 rate_limits.data.each do |entry|
802802 models = entry.models ? " (#{entry.models.join(", ")})" : ""
from line 832
832832 
833833* [Rate limits](https://platform.claude.com/docs/en/api/rate-limits)
834834* [Admin API](https://platform.claude.com/docs/en/manage-claude/admin-api)
835* [Admin API reference](https://platform.claude.com/docs/en/api/beta/organization)
835* [Admin API reference](https://platform.claude.com/docs/en/api/organization)
836836* [Workspaces](https://platform.claude.com/docs/en/manage-claude/workspaces)
837837* [Usage and Cost API](https://platform.claude.com/docs/en/manage-claude/usage-cost-api)
838838 
Feedback