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
/
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
No line in this hunk matches that.