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.296, published an hour after 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+278added
Lines−12removed
From line 157 where the diff opens
First seen 14 Aug 2026 this site's first read of the page
Recorded edits9to this page, all time

### Include inherited values

The whole hunk

from line 157, old and new numbered
/
lines
from line 157
157157* **`group_type`:** Deprecated in favor of the `type` inside `group`. It's still returned, always equals that value, and has no removal date. The `group_type` query parameter isn't deprecated. See [Filtering by group type](https://platform.claude.com/docs/en/manage-claude/rate-limits-api#filtering-by-group-type) for the list of values.
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.
160* **`source` on workspace limits:** On the workspace endpoint, every limit value also carries `source`, which says where `value` comes from: `{"type": "workspace"}` for an override stored on the workspace, or `{"type": "organization"}` for a value inherited from the organization. By default, the workspace endpoint returns overrides only, so `source.type` is always `workspace` there; inherited values appear when you pass `include_inherited=true`. See [Workspace rate limits](https://platform.claude.com/docs/en/manage-claude/rate-limits-api#workspace-rate-limits).
160161 
161162For complete parameter details and response schemas, see the [Organization Rate Limits API reference](https://platform.claude.com/docs/en/api/organization/rate_limits/list).
162163 
from line 282
281282 ```
282283</CodeGroup>
283284 
284```json
285```text wrap
285286{
286287 "data": [
287288 {
from line 477
476477 
477478## Workspace rate limits
478479 
479The `/v1/organizations/workspaces/{workspace_id}/rate_limits` endpoint returns the rate limit overrides configured for a single workspace.
480The `/v1/organizations/workspaces/{workspace_id}/rate_limits` endpoint returns the rate limit overrides configured for a single workspace. To also see the values the workspace inherits, pass `include_inherited=true` (see [Include inherited values](https://platform.claude.com/docs/en/manage-claude/rate-limits-api#include-inherited-values)).
480481 
481The response only includes overrides, so anything missing from it is inherited from the organization:
482By default, the response only includes overrides, so anything missing from it is inherited from the organization:
482483 
483484* A group that is absent from `data` has no workspace override at all. The workspace inherits the organization-level limits for that group (it is not unlimited).
484485* 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.
485* 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.
486* 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, and `source` is `{"type": "workspace"}`.
486487 
487488For 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).
488489 
489490<Tip>
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.
491 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, and this endpoint returns a 404 error for it, with or without `include_inherited`; use the organization endpoint to read its limits.
491492</Tip>
492493 
493494<CodeGroup>
from line 625
624625 ```
625626</CodeGroup>
626627 
627```json
628```text wrap
628629{
629630 "data": [
630631 {
from line 638
637638 },
638639 "models": ["claude-opus-5-5"],
639640 "limits": [
640 { "type": "requests_per_minute", "value": 1000, "org_limit": 4000 },
641 { "type": "input_tokens_per_minute", "value": 500000, "org_limit": 10000000 }
641 {
642 "type": "requests_per_minute",
643 "value": 1000,
644 "org_limit": 4000,
645 "source": { "type": "workspace" }
646 },
647 {
648 "type": "input_tokens_per_minute",
649 "value": 500000,
650 "org_limit": 10000000,
651 "source": { "type": "workspace" }
652 }
642653 ]
643654 },
644655 {
from line 668
657668 "claude-opus-4-8"
658669 ],
659670 "limits": [
660 { "type": "requests_per_minute", "value": 1000, "org_limit": 4000 },
661 { "type": "input_tokens_per_minute", "value": 500000, "org_limit": 10000000 }
671 {
672 "type": "requests_per_minute",
673 "value": 1000,
674 "org_limit": 4000,
675 "source": { "type": "workspace" }
676 },
677 {
678 "type": "input_tokens_per_minute",
679 "value": 500000,
680 "org_limit": 10000000,
681 "source": { "type": "workspace" }
682 }
662683 ]
663684 }
664685 ],
from line 687
666687}
667688```
668689 
690### Include inherited values
691 
692To read a workspace's applicable limits in one request, add the optional `include_inherited` query parameter. It defaults to `false`; a value that isn't a Boolean returns a 400 error. With `include_inherited=true`:
693 
694* `data` has one entry for each group that applies to the workspace and has an organization-level value, even if the workspace overrides none of it. A model group applies when the workspace can access at least one of its models.
695* Each entry's `limits[]` lists every limiter type the organization has a value for on that group, plus any type the workspace overrides. Each type appears once, with the workspace's override where one is stored and the organization's value otherwise, so one entry can mix the two.
696* Each value's `source` tells them apart: `{"type": "workspace"}` is a stored override, and `{"type": "organization"}` is an inherited value, where `value` equals `org_limit`.
697 
698<CodeGroup>
699 ```bash cURL
700 curl "https://api.anthropic.com/v1/organizations/workspaces/wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ/rate_limits?include_inherited=true" \
701 -H "x-api-key: $ANTHROPIC_API_KEY" \
702 -H "anthropic-version: 2023-06-01"
703 ```
704 
705 ```bash CLI
706 ant organization:workspaces:rate-limits list \
707 --workspace-id wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ \
708 --include-inherited
709 ```
710 
711 ```python Python
712 client = anthropic.Anthropic()
713 
714 rate_limits = client.organization.workspaces.rate_limits.list(
715 "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ",
716 include_inherited=True,
717 )
718 
719 for entry in rate_limits:
720 models = f" ({', '.join(entry.models)})" if entry.models else ""
721 print(f"{entry.group.type}{models}")
722 for limit in entry.limits:
723 print(f" {limit.type}: {limit.value} ({limit.source.type})")
724 ```
725 
726 ```typescript TypeScript
727 const client = new Anthropic();
728 
729 const rateLimits = await client.organization.workspaces.rateLimits.list(
730 "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ",
731 { include_inherited: true }
732 );
733 
734 for await (const entry of rateLimits) {
735 const models = entry.models ? ` (${entry.models.join(", ")})` : "";
736 console.log(`${entry.group.type}${models}`);
737 for (const limit of entry.limits) {
738 console.log(` ${limit.type}: ${limit.value} (${limit.source.type})`);
739 }
740 }
741 ```
742 
743 ```csharp C#
744 AnthropicClient client = new();
745 
746 var rateLimits = await client.Organization.Workspaces.RateLimits.List(
747 "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ",
748 new() { IncludeInherited = true }
749 );
750 
751 await foreach (var entry in rateLimits.Paginate())
752 {
753 var models = entry.Models is null ? "" : $" ({string.Join(", ", entry.Models)})";
754 Console.WriteLine($"{entry.Group.Type.GetString()}{models}");
755 foreach (var limit in entry.Limits)
756 {
757 Console.WriteLine($" {limit.Type}: {limit.Value} ({limit.Source.Type.GetString()})");
758 }
759 }
760 ```
761 
762 ```go Go
763 client := anthropic.NewClient()
764 
765 rateLimits := client.Organization.Workspaces.RateLimits.ListAutoPaging(
766 context.Background(),
767 "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ",
768 anthropic.OrganizationWorkspaceRateLimitListParams{
769 IncludeInherited: anthropic.Bool(true),
770 },
771 )
772 
773 for rateLimits.Next() {
774 entry := rateLimits.Current()
775 models := ""
776 if len(entry.Models) > 0 {
777 models = fmt.Sprintf(" (%s)", strings.Join(entry.Models, ", "))
778 }
779 fmt.Printf("%s%s\n", entry.Group.Type, models)
780 for _, limit := range entry.Limits {
781 fmt.Printf(" %s: %d (%s)\n", limit.Type, limit.Value, limit.Source.Type)
782 }
783 }
784 if err := rateLimits.Err(); err != nil {
785 log.Fatal(err)
786 }
787 ```
788 
789 ```java Java
790 import com.anthropic.models.organization.workspaces.ratelimits.RateLimitListParams;
791 
792 void main() {
793 AnthropicClient client = AnthropicOkHttpClient.fromEnv();
794 
795 var params = RateLimitListParams.builder()
796 .includeInherited(true)
797 .build();
798 var rateLimits = client.organization().workspaces().rateLimits()
799 .list("wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ", params);
800 
801 for (var entry : rateLimits.autoPager()) {
802 var models = entry.models()
803 .map(modelIds -> " (" + String.join(", ", modelIds) + ")")
804 .orElse("");
805 IO.println(entry.group().type().asString() + models);
806 for (var limit : entry.limits()) {
807 IO.println(" " + limit.type() + ": " + limit.value()
808 + " (" + limit.source().type().asString() + ")");
809 }
810 }
811 }
812 ```
813 
814 ```php PHP
815 $client = new Client();
816 
817 $rateLimits = $client->organization->workspaces->rateLimits->list(
818 workspaceID: 'wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ',
819 includeInherited: true,
820 );
821 
822 foreach ($rateLimits->data as $entry) {
823 $models = $entry->models ? ' (' . implode(', ', $entry->models) . ')' : '';
824 echo "{$entry->group->type}{$models}\n";
825 foreach ($entry->limits as $limit) {
826 echo " {$limit->type}: {$limit->value} ({$limit->source->type})\n";
827 }
828 }
829 ```
830 
831 ```ruby Ruby
832 client = Anthropic::Client.new
833 
834 workspace_id = "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ"
835 rate_limits = client.organization.workspaces.rate_limits.list(workspace_id, include_inherited: true)
836 
837 rate_limits.data.each do |entry|
838 models = entry.models ? " (#{entry.models.join(", ")})" : ""
839 puts "#{entry.group.type}#{models}"
840 entry.limits.each do |limit|
841 puts " #{limit.type}: #{limit.value} (#{limit.source.type})"
842 end
843 end
844 ```
845</CodeGroup>
846 
847```text wrap
848{
849 "data": [
850 {
851 "type": "workspace_rate_limit",
852 "group_type": "model_group",
853 "group": {
854 "type": "model_group",
855 "id": "rlg_01Hq7YkP3mZ9dTwRx4cVbN2s",
856 "display_name": "Claude Opus 5.5"
857 },
858 "models": ["claude-opus-5-5"],
859 "limits": [
860 {
861 "type": "requests_per_minute",
862 "value": 1000,
863 "org_limit": 4000,
864 "source": { "type": "workspace" }
865 },
866 {
867 "type": "input_tokens_per_minute",
868 "value": 500000,
869 "org_limit": 10000000,
870 "source": { "type": "workspace" }
871 },
872 {
873 "type": "output_tokens_per_minute",
874 "value": 800000,
875 "org_limit": 800000,
876 "source": { "type": "organization" }
877 }
878 ]
879 },
880 {
881 "type": "workspace_rate_limit",
882 "group_type": "model_group",
883 "group": {
884 "type": "model_group",
885 "id": "rlg_01Kd5wMv8nSq2LcXy6tRfJ4b",
886 "display_name": "Claude Opus 4.x"
887 },
888 "models": [
889 "claude-opus-4-5",
890 "claude-opus-4-5-20251101",
891 "claude-opus-4-6",
892 "claude-opus-4-7",
893 "claude-opus-4-8"
894 ],
895 "limits": [
896 {
897 "type": "requests_per_minute",
898 "value": 1000,
899 "org_limit": 4000,
900 "source": { "type": "workspace" }
901 },
902 {
903 "type": "input_tokens_per_minute",
904 "value": 500000,
905 "org_limit": 10000000,
906 "source": { "type": "workspace" }
907 },
908 {
909 "type": "output_tokens_per_minute",
910 "value": 800000,
911 "org_limit": 800000,
912 "source": { "type": "organization" }
913 }
914 ]
915 },
916 {
917 "type": "workspace_rate_limit",
918 "group_type": "batch",
919 "group": { "type": "batch", "id": "rlg_01Wn3pBz6kCg9vHtQ7mLxD5a" },
920 "models": null,
921 "limits": [
922 {
923 "type": "enqueued_batch_requests",
924 "value": 500000,
925 "org_limit": 500000,
926 "source": { "type": "organization" }
927 }
928 ]
929 }
930 ],
931 "next_page": null
932}
933```
934 
669935## Filtering by group type
670936 
671937Both endpoints accept an optional `group_type` query parameter that restricts the response to a single category:
from line 1088
8221088 
8231089### What does it mean if a group is missing from the workspace response?
8241090 
825The workspace has no override for that group and inherits the organization-level limit. Query the organization endpoint to see the inherited values.
1091By default, the workspace response lists only overrides, so a missing group has no workspace override and inherits the organization-level limit. Pass `include_inherited=true` to see inherited values on the workspace endpoint, or query the organization endpoint. With `include_inherited=true`, a group is missing only when it doesn't apply to the workspace or the organization has no limit set for it.
8261092 
8271093### Can I update rate limits with this API?
8281094 
Feedback