Follow Discord
Sweep 03 Nov 2026 · 22:27Z Build v2.1.318 536 read Stable v2.1.311 Latest v2.1.318 Next v2.1.318 Feeds RSS JSON llms.txt llms-full.txt Unofficial
One capture · api

One read of Claude Developer Platformapi-20261104T020710Z

159 pages moved out of 847 read.

Pages moved 159 significant first
Pages read 847 in this capture
Captured 02:07 UTC
Corpus hash 61cf340e1136 corpus-hash

What this read moved

51-75 of 159, page 3 of 7

This capture is too large to show at once. Changes 51-75 of 159 are below, significant first; the rest are on the following screens.

manage-claude/analytics-api Changed · +3 / -3 lines

from line 4
44description: Understand which analytics API and API key your organization needs, then provision access to Claude Code productivity metrics or Claude Enterprise engagement and adoption data.
55---
66 
7Anthropic provides two analytics APIs, and which one you use depends on which Claude product your organization manages:
7Anthropic provides two product analytics APIs, and which one you use depends on which Claude product your organization manages:
88 
99* The **Claude Code Analytics API** reports daily Claude Code productivity metrics for organizations that use the Claude Platform. It is part of the [Admin API](https://platform.claude.com/docs/en/manage-claude/admin-api) and uses an Admin API key.
1010* The **Claude Enterprise Analytics API** reports organization-wide engagement, adoption, and cost data across Claude products (chat, projects, Claude Code, and more) for Claude Enterprise organizations. It uses an Analytics API key created in claude.ai.
from line 18
1818| **Claude Code Analytics API** | Admin API key (`sk-ant-admin01-...`) | [Admin keys](https://platform.claude.com/settings/admin-keys) page (`platform.claude.com/settings/admin-keys`) in the Claude Console | Organization admin | Daily Claude Code metrics per user: sessions, lines of code, commits, pull requests, tool acceptance, and estimated cost by model |
1919| **Claude Enterprise Analytics API** | Analytics API key | [claude.ai > Organization settings > API](https://claude.ai/admin-settings/api-access) | Primary owner | Organization-wide engagement and adoption (user activity, active-user summaries, project, skill, and connector usage), plus cost and usage reports |
2020 
21The key types are not interchangeable: an Admin API key cannot call the Claude Enterprise Analytics API, and an Analytics API key cannot call the Admin API. The one exception is the [Usage and Cost Analytics API](https://platform.claude.com/docs/en/manage-claude/usage-cost-analytics-api), which Claude Enterprise organizations call with their Analytics API key. Both APIs appear under the [Admin API reference](https://platform.claude.com/docs/en/api/beta/organization), but they are separate APIs with separate key types. If your organization uses both the Claude Platform and Claude Enterprise, you can provision both keys and use each API for its own data.
21The key types are not interchangeable: an Admin API key cannot call the Claude Enterprise Analytics API, and an Analytics API key cannot call the Admin API. The one exception is the [Usage and Cost Analytics API](https://platform.claude.com/docs/en/manage-claude/usage-cost-analytics-api), which Claude Enterprise organizations call with their Analytics API key. Both product analytics APIs appear under the [Admin API reference](https://platform.claude.com/docs/en/api/beta/organization), but they are separate APIs with separate key types. If your organization uses both the Claude Platform and Claude Enterprise, you can provision both keys and use each API for its own data.
2222 
2323<Note>
2424 Looking for token usage and cost data rather than product analytics? See the [Usage and Cost Analytics API](https://platform.claude.com/docs/en/manage-claude/usage-cost-analytics-api), which serves both Claude Console and Claude Enterprise organizations.
from line 42
4242 
4343 ```bash
4444 curl "https://api.anthropic.com/v1/organizations/usage_report/claude_code?starting_at=2025-09-08" \
45 -H "anthropic-version: 2023-06-01" \
45 -H "anthropic-version: 2026-10-21" \
4646 -H "x-api-key: $ANTHROPIC_ADMIN_KEY"
4747 ```
4848 </Step>

manage-claude/api-and-data-retention Changed · +4 / -3 lines

from line 4
44description: Learn about how Anthropic's APIs and associated features retain data, including information about zero data retention (ZDR) and HIPAA-ready API access.
55---
66 
7This page covers the Claude API (`api.anthropic.com`), Claude Platform on AWS, [Claude in Microsoft Foundry](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry), and [Claude Models on Google Cloud (Anthropic managed)](https://platform.claude.com/docs/en/build-with-claude/claude-models-on-google-cloud/anthropic-managed), where Anthropic is the data processor. On Amazon Bedrock and Claude Models on Google Cloud (Google managed), the cloud provider is the data processor; refer to those platforms’ data retention and compliance documentation for their equivalent controls.
7This page covers the Claude API (`api.anthropic.com`), Claude Platform on AWS, [Claude in Microsoft Foundry](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry), and [Claude Models on Google Cloud (Anthropic managed)](https://platform.claude.com/docs/en/build-with-claude/claude-models-on-google-cloud/anthropic-managed), where Anthropic is the data processor. On Claude Models on Google Cloud (Google managed) and Amazon Bedrock, the cloud provider is the data processor; refer to those platforms’ data retention and compliance documentation for their equivalent controls.
88 
99Anthropic offers two data handling arrangements for the Claude API: [zero data retention (ZDR)](https://platform.claude.com/docs/en/manage-claude/api-and-data-retention#zero-data-retention-zdr-scope) and [HIPAA readiness](https://platform.claude.com/docs/en/manage-claude/api-and-data-retention#hipaa-readiness). The [feature eligibility table](https://platform.claude.com/docs/en/manage-claude/api-and-data-retention#feature-eligibility) lists which API features each arrangement covers. For Anthropic’s standard retention policies outside these arrangements, see the [commercial data retention policy](https://privacy.claude.com/en/articles/7996866-how-long-do-you-store-my-organization-s-data) and the [consumer data retention policy](https://privacy.claude.com/en/articles/10023548-how-long-do-you-store-my-data).
1010 
from line 22
2222 
2323Under a ZDR arrangement, Anthropic does not store customer prompts or responses at rest after the API response is returned. To request ZDR for your organization, contact the [Anthropic sales team](https://claude.com/contact-sales). ZDR is enabled per organization; each new organization requires ZDR to be enabled separately by your account team, and enablement does not automatically extend to other organizations under the same account.
2424 
25Organizations with a ZDR arrangement cannot call the Claude API directly from a browser: the API rejects their cross-origin (CORS) requests. To call the API from a web application, send the requests from your own back end. See [Browser-based applications](https://platform.claude.com/docs/en/manage-claude/authentication#browser-based-applications).
26 
2527### What ZDR covers
2628 
2729* **Claude Messages and Token Counting APIs:** ZDR applies to these endpoints for eligible features listed in the [feature eligibility table](https://platform.claude.com/docs/en/manage-claude/api-and-data-retention#feature-eligibility). Features that use `/v1/messages` but are marked “No” in the table (such as code execution) are not covered.
from line 40
3840* **Claude for Excel:** Not currently ZDR-eligible.
3941* **Claude Fable 5.1, Claude Mythos 5.1, Claude Fable 5, and Claude Mythos 5:** These models require 30-day data retention and are not available under ZDR unless expressly authorized by Anthropic. See [Model-specific data retention requirements](https://platform.claude.com/docs/en/manage-claude/api-and-data-retention#model-specific-data-retention-requirements).
4042* **Third-party integrations:** Data processed by third-party websites, tools, or other integrations is not covered, though some may have similar offerings. Review each service’s data handling practices.
41* **Cross-Origin Resource Sharing (CORS):** CORS is not supported for organizations with ZDR arrangements. To make API calls from browser-based applications, route requests through a backend proxy server. See the [API security guidance](https://platform.claude.com/docs/en/api/overview) for proxy patterns and API-key handling.
4243* **Flagged content and legal holds:** See [Retention regardless of arrangement](https://platform.claude.com/docs/en/manage-claude/api-and-data-retention#retention-regardless-of-arrangement).
4344 
4445<Note>
from line 272
271272 </Accordion>
272273 
273274 <Accordion title="Does this apply to Amazon Bedrock or Google Cloud?">
274 [Claude Models on Google Cloud (Anthropic managed)](https://platform.claude.com/docs/en/build-with-claude/claude-models-on-google-cloud/anthropic-managed) follows the same data retention policy as the first-party Claude API, and Anthropic is the data processor. ZDR is available there on request. On Amazon Bedrock and Claude Models on Google Cloud (Google managed), the cloud provider is the data processor; refer to those platforms’ data retention and compliance policies for their equivalent controls.
275 [Claude Models on Google Cloud (Anthropic managed)](https://platform.claude.com/docs/en/build-with-claude/claude-models-on-google-cloud/anthropic-managed) follows the same data retention policy as the first-party Claude API, and Anthropic is the data processor. ZDR is available there on request. On Claude Models on Google Cloud (Google managed) and Amazon Bedrock, the cloud provider is the data processor; refer to those platforms’ data retention and compliance policies for their equivalent controls.
275276 </Accordion>
276277 
277278 <Accordion title="Is Claude Platform on AWS eligible for ZDR or HIPAA readiness?">

manage-claude/authentication Changed · +13 / -3 lines

### Browser-based applications

from line 42
4242```http
4343POST /v1/messages
4444Authorization: Bearer YOUR_API_KEY
45anthropic-version: 2023-06-01
45anthropic-version: 2026-10-21
4646content-type: application/json
4747```
4848 
from line 54
5454 ```bash cURL
5555 curl https://api.anthropic.com/v1/messages \
5656 -H "x-api-key: $ANTHROPIC_API_KEY" \
57 -H "anthropic-version: 2023-06-01" \
57 -H "anthropic-version: 2026-10-21" \
5858 -H "content-type: application/json" \
5959 -d '{
6060 "model": "claude-opus-5-5",
from line 137
137137 # Omit the anthropic-workspace-id header for a key scoped to one workspace.
138138 curl https://api.anthropic.com/v1/messages \
139139 -H "x-api-key: $ANTHROPIC_API_KEY" \
140 -H "anthropic-version: 2023-06-01" \
140 -H "anthropic-version: 2026-10-21" \
141141 -H "anthropic-workspace-id: wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ" \
142142 -H "content-type: application/json" \
143143 -d '{
from line 351
3513513. **Create the new key.** Create it specifically for the integration’s workspace unless the integration needs multiple workspaces.
3523524. **Deploy the new key.** Replace the old key wherever the integration reads it, typically the `ANTHROPIC_API_KEY` environment variable or a secrets manager entry. For a key that isn’t scoped to a workspace, also send the `anthropic-workspace-id` header as shown in [Select a workspace](https://platform.claude.com/docs/en/manage-claude/authentication#select-a-workspace).
3533535. **Delete the old key.** Confirm that requests succeed, then delete the workspace key on the [API keys page](https://platform.claude.com/settings/keys) in the Claude Console.
354 
355### Browser-based applications
356 
357Call the Claude API from your own back end, not from code that runs in your users’ browsers. Anyone who uses a webpage can read an API key in that page’s code. Typically, your web front end calls your back end, which holds the key and calls the Claude API.
358 
359A request sent directly from a browser is a cross-origin (CORS) request. The API accepts these requests only when they include the `anthropic-dangerous-direct-browser-access: true` header, which the TypeScript SDK sends when you set `dangerouslyAllowBrowser` to `true`. For the cases where exposing a key this way is acceptable, see [Browser usage](https://platform.claude.com/docs/en/cli-sdks-libraries/sdks/typescript#runtime-support) in the TypeScript SDK guide.
360 
361Organizations that have [zero data retention (ZDR)](https://platform.claude.com/docs/en/manage-claude/api-and-data-retention#zero-data-retention-zdr-scope) or the [Compliance API](https://platform.claude.com/docs/en/manage-claude/compliance-api-access#set-up-the-compliance-api) enabled cannot call the API directly from a browser, even with that header. Other organization settings can have the same effect, and no setting allows browser requests for these organizations. The API returns a 401 `authentication_error` whose message begins `CORS requests are not allowed for this Organization`, even though the API key is valid. A Claude Console organization linked to a Claude Enterprise parent organization inherits the Compliance API setting from the parent. The restriction can therefore apply even when your Claude Console settings show no Compliance API section.
362 
363The restriction applies only to requests that include an `Origin` header, which browsers add and server-side HTTP clients normally do not. Requests from your own back end are not affected. If your back end forwards requests that start in a browser, have it create a new request to the Claude API. Don’t pass the browser’s request through. That request still includes the browser’s `Origin` header, and the API rejects it the same way.
354364 
355365## Workload Identity Federation
356366 

manage-claude/claude-code-analytics-api Changed · +4 / -4 lines

from line 38
3838curl "https://api.anthropic.com/v1/organizations/usage_report/claude_code?\
3939starting_at=2025-09-08&\
4040limit=20" \
41 -H "anthropic-version: 2023-06-01" \
41 -H "anthropic-version: 2026-10-21" \
4242 -H "x-api-key: $ANTHROPIC_ADMIN_KEY"
4343```
4444 
from line 74
7474```bash cURL
7575curl "https://api.anthropic.com/v1/organizations/usage_report/claude_code?\
7676starting_at=2025-09-08" \
77 -H "anthropic-version: 2023-06-01" \
77 -H "anthropic-version: 2026-10-21" \
7878 -H "x-api-key: $ANTHROPIC_ADMIN_KEY"
7979```
8080 
from line 85
8585curl "https://api.anthropic.com/v1/organizations/usage_report/claude_code?\
8686starting_at=2025-09-08&\
8787limit=20" \
88 -H "anthropic-version: 2023-06-01" \
88 -H "anthropic-version: 2026-10-21" \
8989 -H "x-api-key: $ANTHROPIC_ADMIN_KEY"
9090 
9191# Subsequent request using cursor from response
from line 92
9292curl "https://api.anthropic.com/v1/organizations/usage_report/claude_code?\
9393starting_at=2025-09-08&\
9494page=page_MjAyNS0wNS0xNFQwMDowMDowMFo=" \
95 -H "anthropic-version: 2023-06-01" \
95 -H "anthropic-version: 2026-10-21" \
9696 -H "x-api-key: $ANTHROPIC_ADMIN_KEY"
9797```
9898 

manage-claude/claude-tag-api Changed · +19 / -19 lines

from line 37
3737 
3838* Your organization must be on a Claude Enterprise plan, with [Claude Tag set up](https://claude.com/docs/claude-tag/admins/setup-overview) and at least one Slack workspace or Enterprise Grid connected.
3939* Your primary owner creates an Admin API key with the `read:claude_tag` scope, the `write:claude_tag` scope, or both in [claude.ai > Organization settings > API](https://claude.ai/admin-settings/api-access). See [Create a key for a Claude Enterprise organization](https://platform.claude.com/docs/en/manage-claude/admin-api-keys#create-a-key-for-a-claude-enterprise-organization).
40* Every request carries three headers: `x-api-key`, `anthropic-version: 2023-06-01` (see [API versions](https://platform.claude.com/docs/en/api/versioning)), and `anthropic-beta: experimental-claude-tag-2026-10-21`.
40* Every request carries three headers: `x-api-key`, `anthropic-version: 2026-10-21` (see [API versions](https://platform.claude.com/docs/en/api/versioning)), and `anthropic-beta: experimental-claude-tag-2026-10-21`.
4141 
4242In Python, TypeScript, C#, Go, Java, PHP, and Ruby, the SDK exposes these endpoints under `client.beta.organization.claude_tag` (typescript: `client.beta.organization.claudeTag`; csharp, go: `client.Beta.Organization.ClaudeTag`; java: `client.beta().organization().claudeTag()`; php: `$client->beta->organization->claudeTag`), and the [`ant` CLI](https://platform.claude.com/docs/en/cli-sdks-libraries/cli/quickstart) under `ant beta:organization:claude-tag`; they send the `anthropic-version` and `anthropic-beta` headers for you. The examples on this page read the Admin API key from the `ANTHROPIC_API_KEY` environment variable. Where an SDK or the CLI fetches more pages for you, `limit` sets the page size, not the total (see [Pagination](https://platform.claude.com/docs/en/manage-claude/claude-tag-api#pagination)).
4343 
from line 51
5151 ```bash cURL
5252 curl "https://api.anthropic.com/v1/organizations/claude_tag/slack_workspaces" \
5353 -H "x-api-key: $ANTHROPIC_API_KEY" \
54 -H "anthropic-version: 2023-06-01" \
54 -H "anthropic-version: 2026-10-21" \
5555 -H "anthropic-beta: experimental-claude-tag-2026-10-21"
5656 ```
5757 
from line 405
405405 curl -X POST "https://api.anthropic.com/v1/organizations/claude_tag/slack_channels" \
406406 -H "content-type: application/json" \
407407 -H "x-api-key: $ANTHROPIC_API_KEY" \
408 -H "anthropic-version: 2023-06-01" \
408 -H "anthropic-version: 2026-10-21" \
409409 -H "anthropic-beta: experimental-claude-tag-2026-10-21" \
410410 -d '{
411411 "slack": {"workspace_id": "T01ABCD2EFG", "channel_id": "C05HJKL6MNP"},
from line 567
567567 ```bash cURL
568568 curl "https://api.anthropic.com/v1/organizations/claude_tag/slack_channels?slack_workspace_id=T01ABCD2EFG" \
569569 -H "x-api-key: $ANTHROPIC_API_KEY" \
570 -H "anthropic-version: 2023-06-01" \
570 -H "anthropic-version: 2026-10-21" \
571571 -H "anthropic-beta: experimental-claude-tag-2026-10-21"
572572 ```
573573 
from line 682
682682 ```bash cURL
683683 curl "https://api.anthropic.com/v1/organizations/claude_tag/slack_channels?slack_workspace_id=T01ABCD2EFG&slack_channel_id=C05HJKL6MNP" \
684684 -H "x-api-key: $ANTHROPIC_API_KEY" \
685 -H "anthropic-version: 2023-06-01" \
685 -H "anthropic-version: 2026-10-21" \
686686 -H "anthropic-beta: experimental-claude-tag-2026-10-21"
687687 ```
688688 
from line 804
804804 ```bash cURL
805805 curl "https://api.anthropic.com/v1/organizations/claude_tag/slack_channels/slch_011CZkZmRt4vNq8sHbYw2KdX" \
806806 -H "x-api-key: $ANTHROPIC_API_KEY" \
807 -H "anthropic-version: 2023-06-01" \
807 -H "anthropic-version: 2026-10-21" \
808808 -H "anthropic-beta: experimental-claude-tag-2026-10-21"
809809 ```
810810 
from line 895
895895 ```bash cURL
896896 curl "https://api.anthropic.com/v1/organizations/claude_tag/slack_channels/slch_011CZkZmRt4vNq8sHbYw2KdX?include_inherited=true" \
897897 -H "x-api-key: $ANTHROPIC_API_KEY" \
898 -H "anthropic-version: 2023-06-01" \
898 -H "anthropic-version: 2026-10-21" \
899899 -H "anthropic-beta: experimental-claude-tag-2026-10-21"
900900 ```
901901 
from line 1003
10031003 curl -X POST "https://api.anthropic.com/v1/organizations/claude_tag/slack_channels/slch_011CZkZmRt4vNq8sHbYw2KdX" \
10041004 -H "content-type: application/json" \
10051005 -H "x-api-key: $ANTHROPIC_API_KEY" \
1006 -H "anthropic-version: 2023-06-01" \
1006 -H "anthropic-version: 2026-10-21" \
10071007 -H "anthropic-beta: experimental-claude-tag-2026-10-21" \
10081008 -d '{"settings": {"enabled": false}}'
10091009 ```
from line 1116
11161116 curl -X POST "https://api.anthropic.com/v1/organizations/claude_tag/slack_channels/slch_011CZkZmRt4vNq8sHbYw2KdX" \
11171117 -H "content-type: application/json" \
11181118 -H "x-api-key: $ANTHROPIC_API_KEY" \
1119 -H "anthropic-version: 2023-06-01" \
1119 -H "anthropic-version: 2026-10-21" \
11201120 -H "anthropic-beta: experimental-claude-tag-2026-10-21" \
11211121 -d '{"settings": {"instructions": null}}'
11221122 ```
from line 1252
12521252 ```bash cURL
12531253 curl -X DELETE "https://api.anthropic.com/v1/organizations/claude_tag/slack_channels/slch_011CZkZmRt4vNq8sHbYw2KdX" \
12541254 -H "x-api-key: $ANTHROPIC_API_KEY" \
1255 -H "anthropic-version: 2023-06-01" \
1255 -H "anthropic-version: 2026-10-21" \
12561256 -H "anthropic-beta: experimental-claude-tag-2026-10-21"
12571257 ```
12581258 
from line 1362
13621362 ```bash cURL
13631363 curl "https://api.anthropic.com/v1/organizations/claude_tag/slack_workspaces/slws_011CZkZnWa7xPc3uJfZe5LgT" \
13641364 -H "x-api-key: $ANTHROPIC_API_KEY" \
1365 -H "anthropic-version: 2023-06-01" \
1365 -H "anthropic-version: 2026-10-21" \
13661366 -H "anthropic-beta: experimental-claude-tag-2026-10-21"
13671367 ```
13681368 
from line 1454
14541454 curl -X POST "https://api.anthropic.com/v1/organizations/claude_tag/slack_workspaces/slws_011CZkZnWa7xPc3uJfZe5LgT" \
14551455 -H "content-type: application/json" \
14561456 -H "x-api-key: $ANTHROPIC_API_KEY" \
1457 -H "anthropic-version: 2023-06-01" \
1457 -H "anthropic-version: 2026-10-21" \
14581458 -H "anthropic-beta: experimental-claude-tag-2026-10-21" \
14591459 -d '{"settings": {"guest_policy": {"type": "restrict"}}}'
14601460 ```
from line 1587
15871587 ```bash cURL
15881588 curl "https://api.anthropic.com/v1/organizations/claude_tag/bundles" \
15891589 -H "x-api-key: $ANTHROPIC_API_KEY" \
1590 -H "anthropic-version: 2023-06-01" \
1590 -H "anthropic-version: 2026-10-21" \
15911591 -H "anthropic-beta: experimental-claude-tag-2026-10-21"
15921592 ```
15931593 
from line 1699
16991699 ```bash cURL
17001700 curl "https://api.anthropic.com/v1/organizations/claude_tag/bundles/capp_011CZkZjLP1cWxj5EtMmdgbq" \
17011701 -H "x-api-key: $ANTHROPIC_API_KEY" \
1702 -H "anthropic-version: 2023-06-01" \
1702 -H "anthropic-version: 2026-10-21" \
17031703 -H "anthropic-beta: experimental-claude-tag-2026-10-21"
17041704 ```
17051705 
from line 1808
18081808 ```bash cURL
18091809 curl "https://api.anthropic.com/v1/organizations/claude_tag/bundles/capp_011CZkZjLP1cWxj5EtMmdgbq/targets" \
18101810 -H "x-api-key: $ANTHROPIC_API_KEY" \
1811 -H "anthropic-version: 2023-06-01" \
1811 -H "anthropic-version: 2026-10-21" \
18121812 -H "anthropic-beta: experimental-claude-tag-2026-10-21"
18131813 ```
18141814 
from line 1941
19411941 curl -X POST "https://api.anthropic.com/v1/organizations/claude_tag/bundles/capp_011CZkZjLP1cWxj5EtMmdgbq/targets" \
19421942 -H "content-type: application/json" \
19431943 -H "x-api-key: $ANTHROPIC_API_KEY" \
1944 -H "anthropic-version: 2023-06-01" \
1944 -H "anthropic-version: 2026-10-21" \
19451945 -H "anthropic-beta: experimental-claude-tag-2026-10-21" \
19461946 -d '{
19471947 "type": "slack_channel",
from line 2082
20822082 curl -X POST "https://api.anthropic.com/v1/organizations/claude_tag/bundles/capp_011CZkZjLP1cWxj5EtMmdgbq/targets" \
20832083 -H "content-type: application/json" \
20842084 -H "x-api-key: $ANTHROPIC_API_KEY" \
2085 -H "anthropic-version: 2023-06-01" \
2085 -H "anthropic-version: 2026-10-21" \
20862086 -H "anthropic-beta: experimental-claude-tag-2026-10-21" \
20872087 -d '{
20882088 "type": "slack_workspace",
from line 2217
22172217 ```bash cURL
22182218 curl "https://api.anthropic.com/v1/organizations/claude_tag/bundles/capp_011CZkZjLP1cWxj5EtMmdgbq/targets/btgt_011CZkZpBv9yQd6wKhAr8MnU1CZkZwPd5fSj8tMxUr3ZcH" \
22192219 -H "x-api-key: $ANTHROPIC_API_KEY" \
2220 -H "anthropic-version: 2023-06-01" \
2220 -H "anthropic-version: 2026-10-21" \
22212221 -H "anthropic-beta: experimental-claude-tag-2026-10-21"
22222222 ```
22232223 
from line 2326
23262326 ```bash cURL
23272327 curl -X DELETE "https://api.anthropic.com/v1/organizations/claude_tag/bundles/capp_011CZkZjLP1cWxj5EtMmdgbq/targets/btgt_011CZkZpBv9yQd6wKhAr8MnU1CZkZwPd5fSj8tMxUr3ZcH" \
23282328 -H "x-api-key: $ANTHROPIC_API_KEY" \
2329 -H "anthropic-version: 2023-06-01" \
2329 -H "anthropic-version: 2026-10-21" \
23302330 -H "anthropic-beta: experimental-claude-tag-2026-10-21"
23312331 ```
23322332 

manage-claude/cmek-admin-api Changed · +5 / -5 lines

from line 27
2727 ```bash cURL
2828 curl -sS "https://api.anthropic.com/v1/organizations/external_keys" \
2929 -H "x-api-key: $ANTHROPIC_API_KEY" \
30 -H "anthropic-version: 2023-06-01" \
30 -H "anthropic-version: 2026-10-21" \
3131 -H "content-type: application/json" \
3232 -d '{
3333 "display_name": "<friendly-name>",
from line 182
182182 ```bash cURL
183183 curl -sS "https://api.anthropic.com/v1/organizations/external_keys" \
184184 -H "x-api-key: $ANTHROPIC_API_KEY" \
185 -H "anthropic-version: 2023-06-01" \
185 -H "anthropic-version: 2026-10-21" \
186186 -H "content-type: application/json" \
187187 -d '{
188188 "display_name": "<friendly-name>",
from line 343
343343 ```bash cURL
344344 curl -sS "https://api.anthropic.com/v1/organizations/external_keys" \
345345 -H "x-api-key: $ANTHROPIC_API_KEY" \
346 -H "anthropic-version: 2023-06-01" \
346 -H "anthropic-version: 2026-10-21" \
347347 -H "content-type: application/json" \
348348 -d '{
349349 "display_name": "<friendly-name>",
from line 531
531531 ```bash cURL
532532 curl -sS -X POST "https://api.anthropic.com/v1/organizations/external_keys/ekey_<id>/validate" \
533533 -H "x-api-key: $ANTHROPIC_API_KEY" \
534 -H "anthropic-version: 2023-06-01"
534 -H "anthropic-version: 2026-10-21"
535535 ```
536536 
537537 ```bash CLI
from line 628
628628 ```bash cURL
629629 curl -sS -X POST "https://api.anthropic.com/v1/organizations/workspaces/<workspace-id>" \
630630 -H "x-api-key: $ANTHROPIC_API_KEY" \
631 -H "anthropic-version: 2023-06-01" \
631 -H "anthropic-version: 2026-10-21" \
632632 -H "content-type: application/json" \
633633 -d '{
634634 "external_key_id": "ekey_<id>"

manage-claude/compliance-activity-feed Changed · +4 / -4 lines

from line 20
2020curl --fail-with-body -sS \
2121 "https://api.anthropic.com/v1/compliance/activities?limit=1" \
2222 -H "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
23 -H "anthropic-version: 2023-06-01"
23 -H "anthropic-version: 2026-10-21"
2424```
2525 
2626```json Response
from line 62
6262 --data-urlencode "activity_types[]=claude_chat_created" \
6363 --data-urlencode "created_at.gte=2026-04-01T00:00:00Z" \
6464 -H "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
65 -H "anthropic-version: 2023-06-01"
65 -H "anthropic-version: 2026-10-21"
6666```
6767 
6868The Activity Feed produces hundreds of distinct activity types. See [Query compliance activities](https://platform.claude.com/docs/en/api/compliance/activities/list) in the API reference for the full list of values that `activity_types[]` accepts.
from line 103
103103curl --fail-with-body -sS \
104104 "https://api.anthropic.com/v1/compliance/activities?limit=2" \
105105 -H "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
106 -H "anthropic-version: 2023-06-01"
106 -H "anthropic-version: 2026-10-21"
107107 
108108# LAST_ID is the last_id from the first response. Pass it back unchanged to fetch the next (older) page.
109109curl --fail-with-body -sS -G \
110110 "https://api.anthropic.com/v1/compliance/activities" \
111111 -H "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
112 -H "anthropic-version: 2023-06-01" \
112 -H "anthropic-version: 2026-10-21" \
113113 --data-urlencode "limit=2" \
114114 --data-urlencode "after_id=$LAST_ID"
115115```

manage-claude/compliance-content-data Changed · +6 / -6 lines

from line 32
3232curl --fail-with-body -sS -G \
3333 "https://api.anthropic.com/v1/compliance/apps/chats" \
3434 -H "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
35 -H "anthropic-version: 2023-06-01" \
35 -H "anthropic-version: 2026-10-21" \
3636 --data-urlencode "order_by=updated_at" \
3737 --data-urlencode "updated_at.gte=2025-06-01T00:00:00Z" \
3838 --data-urlencode "limit=100"
from line 75
7575curl --fail-with-body -sS -G \
7676 "https://api.anthropic.com/v1/compliance/apps/chats" \
7777 --header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
78 --header "anthropic-version: 2023-06-01" \
78 --header "anthropic-version: 2026-10-21" \
7979 --data-urlencode "user_ids[]=user_01WxYzAbCdEfGhJkMnPqRsTu" \
8080 --data-urlencode "created_at.gte=2025-06-01T00:00:00Z" \
8181 --data-urlencode "limit=100"
from line 87
8787curl --fail-with-body -sS \
8888 "https://api.anthropic.com/v1/compliance/apps/chats/claude_chat_01H5CWunD7RpVJ5bHa8RCkja/messages" \
8989 -H "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
90 -H "anthropic-version: 2023-06-01"
90 -H "anthropic-version: 2026-10-21"
9191```
9292 
9393The messages endpoint returns the chat’s metadata plus a `chat_messages` array sorted by `created_at`. When `limit` is omitted, the full message set is returned in one response; pass `limit`, `after_id`, or `before_id` to page through very long chats. The endpoint also accepts `created_at.*` and `updated_at.*` range bounds (`gt`, `gte`, `lt`, `lte`) and an `order` parameter (`asc` or `desc`). See [Get chat messages](https://platform.claude.com/docs/en/api/compliance/apps/chats/messages/list) for the full parameter list. For user messages, `created_at` is when the message was sent; for assistant messages, it is when Claude finished generating the message. Each message carries its text content and, when present, any uploaded files (typically on user messages), any tool-generated files, and any artifacts the assistant produced or updated (typically on assistant messages):
from line 203
203203curl --fail-with-body -sS \
204204 "https://api.anthropic.com/v1/compliance/apps/chats/files/claude_file_01UaT9wBcDfGhJkLmNpQrSv7/content" \
205205 -H "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
206 -H "anthropic-version: 2023-06-01" \
206 -H "anthropic-version: 2026-10-21" \
207207 --output "dashboard_mockup_v1.pdf"
208208```
209209 
from line 240
240240curl --fail-with-body -sS -G \
241241 "https://api.anthropic.com/v1/compliance/apps/projects/claude_proj_01KGp4eZNug9ri4kE35RSppq/attachments" \
242242 -H "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
243 -H "anthropic-version: 2023-06-01"
243 -H "anthropic-version: 2026-10-21"
244244```
245245 
246246```json Response
from line 297
297297curl --fail-with-body -sS -X DELETE \
298298 "https://api.anthropic.com/v1/compliance/apps/chats/claude_chat_01H5CWunD7RpVJ5bHa8RCkja" \
299299 -H "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
300 -H "anthropic-version: 2023-06-01"
300 -H "anthropic-version: 2026-10-21"
301301```
302302 
303303```json Response

manage-claude/compliance-org-data Changed · +7 / -7 lines

from line 26
2626curl --fail-with-body -sS \
2727 "https://api.anthropic.com/v1/compliance/organizations" \
2828 -H "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
29 -H "anthropic-version: 2023-06-01"
29 -H "anthropic-version: 2026-10-21"
3030```
3131 
3232```json Response
from line 76
7676curl --fail-with-body -sS -G \
7777 "https://api.anthropic.com/v1/compliance/organizations/91012d09-e48b-438e-a489-1bebfd8fa6f9/users" \
7878 -H "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
79 -H "anthropic-version: 2023-06-01" \
79 -H "anthropic-version: 2026-10-21" \
8080 --data-urlencode "limit=500"
8181```
8282 
from line 112
112112curl --fail-with-body -sS \
113113 "https://api.anthropic.com/v1/compliance/organizations/91012d09-e48b-438e-a489-1bebfd8fa6f9/user_preferences" \
114114 -H "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
115 -H "anthropic-version: 2023-06-01"
115 -H "anthropic-version: 2026-10-21"
116116```
117117 
118118```json Response
from line 142
142142curl --fail-with-body -sS \
143143 "https://api.anthropic.com/v1/compliance/organizations/91012d09-e48b-438e-a489-1bebfd8fa6f9/roles" \
144144 -H "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
145 -H "anthropic-version: 2023-06-01"
145 -H "anthropic-version: 2026-10-21"
146146```
147147 
148148```json Response
from line 177
177177curl --fail-with-body -sS -G \
178178 "https://api.anthropic.com/v1/compliance/groups" \
179179 -H "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
180 -H "anthropic-version: 2023-06-01"
180 -H "anthropic-version: 2026-10-21"
181181```
182182 
183183```json Response
from line 204
204204curl --fail-with-body -sS -G \
205205 "https://api.anthropic.com/v1/compliance/groups/rbac_group_01P9qRsTuVwXyZa2BcDeFgHjK/members" \
206206 -H "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
207 -H "anthropic-version: 2023-06-01"
207 -H "anthropic-version: 2026-10-21"
208208```
209209 
210210```json Response
from line 245
245245curl --fail-with-body -sS \
246246 "https://api.anthropic.com/v1/compliance/organizations/91012d09-e48b-438e-a489-1bebfd8fa6f9/settings" \
247247 -H "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
248 -H "anthropic-version: 2023-06-01"
248 -H "anthropic-version: 2026-10-21"
249249```
250250 
251251The response is a list of typed setting rows, and which rows appear varies by organization: a setting the organization’s administrators cannot change, because it is controlled by Anthropic policy or not available to the organization, is omitted from the list. Treat a missing row as “not controllable by this organization’s administrators”, not as “off”. The following abridged example shows three of the rows a response can contain:

manage-claude/compliance-sessions Changed · +4 / -4 lines

from line 79
7979curl --fail-with-body -sS -G \
8080 "https://api.anthropic.com/v1/compliance/apps/sessions/local" \
8181 -H "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
82 -H "anthropic-version: 2023-06-01" \
82 -H "anthropic-version: 2026-10-21" \
8383 --data-urlencode "created_at.gte=2026-07-01T00:00:00Z" \
8484 --data-urlencode "limit=100"
8585```
from line 173
173173curl --fail-with-body -sS \
174174 "https://api.anthropic.com/v1/compliance/apps/sessions/local/clls_01HxKpLmNoPqRsTuVwXyZaBc/messages" \
175175 -H "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
176 -H "anthropic-version: 2023-06-01"
176 -H "anthropic-version: 2026-10-21"
177177```
178178 
179179```json Response
from line 323
323323curl --fail-with-body -sS -G \
324324 "https://api.anthropic.com/v1/compliance/apps/sessions/remote" \
325325 -H "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
326 -H "anthropic-version: 2023-06-01" \
326 -H "anthropic-version: 2026-10-21" \
327327 --data-urlencode "created_at.gte=2026-06-01T00:00:00Z" \
328328 --data-urlencode "limit=100"
329329```
from line 390
390390curl --fail-with-body -sS \
391391 "https://api.anthropic.com/v1/compliance/apps/sessions/remote/cse_01WpQrStUvXyZaBcDeFgHjK6/messages" \
392392 -H "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
393 -H "anthropic-version: 2023-06-01"
393 -H "anthropic-version: 2026-10-21"
394394```
395395 
396396```json Response

manage-claude/data-residency Changed · +3 / -3 lines

from line 61
6161 ```bash cURL
6262 curl https://api.anthropic.com/v1/messages \
6363 -H "x-api-key: $ANTHROPIC_API_KEY" \
64 -H "anthropic-version: 2023-06-01" \
64 -H "anthropic-version: 2026-10-21" \
6565 -H "content-type: application/json" \
6666 -d '{
6767 "model": "claude-opus-5-5",
from line 252
252252The `inference_geo` parameter is supported on Claude 4.6 and later models. Requests with `inference_geo` on Claude Opus 4.5, Claude Sonnet 4.5 (deprecated), Claude Haiku 4.5, or earlier models return a 400 error.
253253 
254254<Note>
255 The `inference_geo` parameter is available on the Claude API (first-party), [Claude Platform on AWS](https://platform.claude.com/docs/en/build-with-claude/claude-platform-on-aws), and [Claude Models on Google Cloud (Anthropic managed)](https://platform.claude.com/docs/en/build-with-claude/claude-models-on-google-cloud/anthropic-managed). On Amazon Bedrock and Claude Models on Google Cloud (Google managed), the inference region is determined by the endpoint URL or inference profile, so `inference_geo` is not applicable. On [Claude in Microsoft Foundry](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry), `inference_geo` is likewise not applicable: deployments hosted on Azure can instead use the US Data Zone Standard deployment type, which keeps inference within the United States. The `inference_geo` parameter is also not available through the [OpenAI SDK compatibility endpoint](https://platform.claude.com/docs/en/cli-sdks-libraries/libraries/openai-sdk).
255 The `inference_geo` parameter is available on the Claude API (first-party), [Claude Platform on AWS](https://platform.claude.com/docs/en/build-with-claude/claude-platform-on-aws), and [Claude Models on Google Cloud (Anthropic managed)](https://platform.claude.com/docs/en/build-with-claude/claude-models-on-google-cloud/anthropic-managed). On Claude Models on Google Cloud (Google managed) and Amazon Bedrock, the inference region is determined by the endpoint URL or inference profile, so `inference_geo` is not applicable. On [Claude in Microsoft Foundry](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry), `inference_geo` is likewise not applicable: deployments hosted on Azure can instead use the US Data Zone Standard deployment type, which keeps inference within the United States. The `inference_geo` parameter is also not available through the [OpenAI SDK compatibility endpoint](https://platform.claude.com/docs/en/cli-sdks-libraries/libraries/openai-sdk).
256256</Note>
257257 
258258### Workspace-level restrictions
from line 294
294294* **Global routing (`inference_geo: "global"`):** Standard pricing applies.
295295* **Older models:** Don’t support `inference_geo` (see [Model availability](https://platform.claude.com/docs/en/manage-claude/data-residency#model-availability)). Standard pricing applies. Requests that include the parameter return a 400 error.
296296 
297This pricing applies to the Claude API (first-party), Claude Platform on AWS, and Claude Models on Google Cloud (Anthropic managed). On Claude in Microsoft Foundry, the same 1.1x multiplier applies to deployments hosted on Azure that use the US Data Zone Standard deployment type. Partner-operated platforms, Bedrock and Claude Models on Google Cloud (Google managed), have their own regional pricing. See [Data residency pricing](https://platform.claude.com/docs/en/about-claude/pricing#data-residency-pricing) for details.
297This pricing applies to the Claude API (first-party), Claude Platform on AWS, and Claude Models on Google Cloud (Anthropic managed). On Claude in Microsoft Foundry, the same 1.1x multiplier applies to deployments hosted on Azure that use the US Data Zone Standard deployment type. Partner-operated platforms, Claude Models on Google Cloud (Google managed) and Bedrock, have their own regional pricing. See [Data residency pricing](https://platform.claude.com/docs/en/about-claude/pricing#data-residency-pricing) for details.
298298 
299299The same multiplier applies to [Claude Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview): when an agent’s [model configuration](https://platform.claude.com/docs/en/managed-agents/agent-setup) pins `inference_geo` to `"us"`, model requests in sessions running that agent are priced at 1.1x the standard rate.
300300 

manage-claude/opentelemetry/api Changed · +9 / -9 lines

from line 78
7878 ```bash cURL
7979 curl --fail-with-body -sS "https://api.anthropic.com/v1/organizations/telemetry_destinations" \
8080 -H "x-api-key: $ANTHROPIC_API_KEY" \
81 -H "anthropic-version: 2023-06-01" \
81 -H "anthropic-version: 2026-10-21" \
8282 -H "anthropic-beta: telemetry-destinations-2026-08-11" \
8383 -H "content-type: application/json" \
8484 -d '{
from line 388
388388 # for example 00-<trace-id>-<span-id>-01.
389389 curl -fsSL "https://api.anthropic.com/v1/sessions/$SESSION_ID/events" \
390390 -H "x-api-key: $ANTHROPIC_API_KEY" \
391 -H "anthropic-version: 2023-06-01" \
391 -H "anthropic-version: 2026-10-21" \
392392 -H "anthropic-beta: managed-agents-2026-04-01" \
393393 -H "content-type: application/json" \
394394 -H "traceparent: $TRACEPARENT" \
from line 409
409409 
410410 headers = {
411411 "x-api-key": os.environ["ANTHROPIC_API_KEY"],
412 "anthropic-version": "2023-06-01",
412 "anthropic-version": "2026-10-21",
413413 "anthropic-beta": "managed-agents-2026-04-01",
414414 "content-type": "application/json",
415415 }
from line 436
436436 
437437 const headers: Record<string, string> = {
438438 "x-api-key": process.env.ANTHROPIC_API_KEY!,
439 "anthropic-version": "2023-06-01",
439 "anthropic-version": "2026-10-21",
440440 "anthropic-beta": "managed-agents-2026-04-01",
441441 "content-type": "application/json"
442442 };
from line 482
482482 }),
483483 };
484484 request.Headers.Add("x-api-key", Environment.GetEnvironmentVariable("ANTHROPIC_API_KEY"));
485 request.Headers.Add("anthropic-version", "2023-06-01");
485 request.Headers.Add("anthropic-version", "2026-10-21");
486486 request.Headers.Add("anthropic-beta", "managed-agents-2026-04-01");
487487 
488488 // Copy the active span's trace context into the request headers.
from line 519
519519 return err
520520 }
521521 req.Header.Set("x-api-key", os.Getenv("ANTHROPIC_API_KEY"))
522 req.Header.Set("anthropic-version", "2023-06-01")
522 req.Header.Set("anthropic-version", "2026-10-21")
523523 req.Header.Set("anthropic-beta", "managed-agents-2026-04-01")
524524 req.Header.Set("content-type", "application/json")
525525 
from line 546
546546 var request = HttpRequest.newBuilder(URI.create(
547547 "https://api.anthropic.com/v1/sessions/" + System.getenv("SESSION_ID") + "/events"))
548548 .header("x-api-key", System.getenv("ANTHROPIC_API_KEY"))
549 .header("anthropic-version", "2023-06-01")
549 .header("anthropic-version", "2026-10-21")
550550 .header("anthropic-beta", "managed-agents-2026-04-01")
551551 .header("content-type", "application/json")
552552 .POST(HttpRequest.BodyPublishers.ofString("""
from line 573
573573 
574574 $headers = [
575575 'x-api-key' => getenv('ANTHROPIC_API_KEY'),
576 'anthropic-version' => '2023-06-01',
576 'anthropic-version' => '2026-10-21',
577577 'anthropic-beta' => 'managed-agents-2026-04-01',
578578 'content-type' => 'application/json',
579579 ];
from line 609
609609 
610610 headers = {
611611 "x-api-key" => ENV.fetch("ANTHROPIC_API_KEY"),
612 "anthropic-version" => "2023-06-01",
612 "anthropic-version" => "2026-10-21",
613613 "anthropic-beta" => "managed-agents-2026-04-01",
614614 "content-type" => "application/json"
615615 }

manage-claude/plugins-api Changed · +78 / -73 lines

from line 6
66 
77The Plugins API lets you do the following:
88 
9* Inventory every plugin in your Claude Enterprise organization
9* Inventory the plugins in your Claude Enterprise organization
1010* Publish plugins and new versions from your own pipelines
1111* Choose which version members are served
1212* Control who can use each plugin
from line 33
3333 
3434| Resource | Endpoints |
3535| ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
36| **Plugins:** list every plugin in the organization, upload a new one, look one up, choose the version members are served (roll back or promote), delete one | `GET /v1/organizations/plugins`<br />`POST /v1/organizations/plugins`<br />`GET /v1/organizations/plugins/{plugin_id}`<br />`POST /v1/organizations/plugins/{plugin_id}`<br />`DELETE /v1/organizations/plugins/{plugin_id}` |
36| **Plugins:** list the plugins in the organization, upload a new one, look one up, choose the version members are served (roll back or promote), delete one | `GET /v1/organizations/plugins`<br />`POST /v1/organizations/plugins`<br />`GET /v1/organizations/plugins/{plugin_id}`<br />`POST /v1/organizations/plugins/{plugin_id}`<br />`DELETE /v1/organizations/plugins/{plugin_id}` |
3737| **Plugin versions:** list a plugin’s version history, upload a new version, look one up, download a version’s files | `GET /v1/organizations/plugins/{plugin_id}/versions`<br />`POST /v1/organizations/plugins/{plugin_id}/versions`<br />`GET /v1/organizations/plugins/{plugin_id}/versions/{version}`<br />`GET /v1/organizations/plugins/{plugin_id}/versions/{version}/content` |
3838| **Installation settings:** read who can use an organization-owned plugin, set it for the whole organization or for one group, remove either setting | `GET /v1/organizations/plugins/{plugin_id}/installation_settings`<br />`POST /v1/organizations/plugins/{plugin_id}/installation_settings/{target}`<br />`DELETE /v1/organizations/plugins/{plugin_id}/installation_settings/{target}` |
3939| **Shares:** read who a member has shared their own plugin with (read-only) | `GET /v1/organizations/plugins/{plugin_id}/shares` |
4040| **Plugin marketplaces:** find a marketplace’s ID, look one up, set the default installation setting for its plugins, check marketplace content before connecting it | `GET /v1/organizations/plugin_marketplaces`<br />`GET /v1/organizations/plugin_marketplaces/{marketplace_id}`<br />`POST /v1/organizations/plugin_marketplaces/{marketplace_id}`<br />`POST /v1/organizations/plugin_marketplaces/validate_repository`<br />`POST /v1/organizations/plugin_marketplaces/validate_archive` |
4141 
42This release does not include standalone skills (skills a member writes in the skills editor or uploads as a single skill in claude.ai). They do not appear in the inventory and cannot be created here. Plugins that Anthropic publishes are not inventoried either; their usage is reported by the [Analytics APIs](https://platform.claude.com/docs/en/manage-claude/analytics-api). Marketplaces are created, connected to repositories, and deleted in claude.ai, not through this API.
42Plugins that Anthropic publishes are not inventoried; their usage is reported by the [Analytics APIs](https://platform.claude.com/docs/en/manage-claude/analytics-api). Marketplaces are created, connected to repositories, and deleted in claude.ai, not through this API.
4343 
4444## Prerequisites
4545 
4646* Your organization must be on a Claude Enterprise plan.
4747* Your primary owner creates an Admin API key with the `read:plugins` scope, the `write:plugins` scope, or both in [claude.ai > Organization settings > API](https://claude.ai/admin-settings/api-access). See [Create a key for a Claude Enterprise organization](https://platform.claude.com/docs/en/manage-claude/admin-api-keys#create-a-key-for-a-claude-enterprise-organization).
48* Every request carries three headers: `x-api-key`, `anthropic-version: 2023-06-01`, and `anthropic-beta: ce-plugins-2026-09-01`.
48* Every request carries three headers: `x-api-key`, `anthropic-version: 2026-10-21`, and `anthropic-beta: ce-plugins-2026-09-01`.
4949 
5050In Python, TypeScript, C#, Go, Java, PHP, and Ruby, the SDK exposes these endpoints under `client.beta.organization` (csharp, go: `client.Beta.Organization`; java: `client.beta().organization()`; php: `$client->beta->organization`), and the [`ant` CLI](https://platform.claude.com/docs/en/cli-sdks-libraries/cli/quickstart) under `ant beta:organization`; they send the `anthropic-version` and `anthropic-beta` headers for you. The examples on this page read the Admin API key from the `ANTHROPIC_API_KEY` environment variable. Where an SDK or the CLI fetches more pages for you, `limit` sets the page size, not the total (see [Pagination](https://platform.claude.com/docs/en/manage-claude/plugins-api#pagination)).
5151 
from line 59
5959 ```bash cURL
6060 curl "https://api.anthropic.com/v1/organizations/plugins?owner_type=organization&limit=20" \
6161 -H "x-api-key: $ANTHROPIC_API_KEY" \
62 -H "anthropic-version: 2023-06-01" \
62 -H "anthropic-version: 2026-10-21" \
6363 -H "anthropic-beta: ce-plugins-2026-09-01"
6464 ```
6565 
from line 223
223223 
224224### Reading another organization under the same parent
225225 
226`read:plugins` and `write:plugins` keys read and write only the organization they were created in. If your company has several Claude organizations linked under one parent organization, the parent’s primary owner can create a `read:org_audit` or `read:compliance_org_data` key for all linked organizations (see [Create a key for a Claude Enterprise organization](https://platform.claude.com/docs/en/manage-claude/admin-api-keys#create-a-key-for-a-claude-enterprise-organization)). That key can also read any linked organization that has access to this API. To read one, pass its ID in the `organization_id` query parameter on any `GET` endpoint on this page. The ID is the organization UUID shown in claude.ai’s settings (its `org_`-prefixed form is accepted too). Without the parameter, the key reads the organization it was created in. A `404` means the named organization is not under the key’s parent or the API is not available to it; a value that is not a UUID or `org_` ID returns `400`. Any other key that names an organization other than its own gets `404`. Writes do not accept `organization_id`.
226`read:plugins` and `write:plugins` keys read and write only the organization they were created in. Some companies have several Claude organizations linked under one parent organization. A `read:org_audit` or `read:compliance_org_data` [key created for all linked organizations](https://platform.claude.com/docs/en/manage-claude/admin-api-keys#create-a-key-for-a-claude-enterprise-organization) can also read any linked organization that has access to this API. To read one, pass its ID in the `organization_id` query parameter on any `GET` endpoint on this page. The ID is the organization UUID shown in claude.ai’s settings (its `org_`-prefixed form is accepted too). Without the parameter, the key reads the organization it was created in. A key with no organization of its own must always pass `organization_id`. A `404` means the named organization is not under the key’s parent or the API is not available to it; a value that is not a UUID or `org_` ID returns `400`. Any other key that names an organization other than its own gets `404`. Writes do not accept `organization_id`.
227227 
228228## Key concepts
229229 
from line 324
324324 
325325`reach` summarizes, in one value, how far a version reaches on members’ machines and beyond:
326326 
327| Value | Meaning |
328| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
329| `remote` | Declares an MCP server or a CLI, whatever else it declares. |
330| `privileged` | Declares no MCP server or CLI, but declares a hook, a monitor (a background command that keeps running during a session), an LSP (Language Server Protocol) server, or settings the plugin applies to the member’s app, or contains a skill, command, or any other Markdown file whose frontmatter pre-approves tools (`allowed-tools`). These run, or take effect, on the member’s own computer. |
331| `contained` | Declares no MCP server, CLI, hook, monitor, LSP server, or app settings, and none of its Markdown files pre-approves tools (for example, a plugin that holds only skills, commands, and agents, none with `allowed-tools`). |
327| Value | Meaning |
328| ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
329| `remote` | Declares an MCP server or a CLI, whatever else it declares. |
330| `privileged` | Declares no MCP server or CLI, but declares a hook, a monitor (a background command that keeps running during a session), an LSP (Language Server Protocol) server, a workflow (a script that Claude Code can run; any file in a `workflows/` folder at the plugin’s root counts as one), or settings the plugin applies to the member’s app, or contains a skill, command, or any other Markdown file whose frontmatter pre-approves tools (`allowed-tools`). These run, or take effect, on the member’s own computer. |
331| `contained` | Declares no MCP server, CLI, hook, monitor, LSP server, workflow, or app settings, and none of its Markdown files pre-approves tools (for example, a plugin that holds only skills, commands, and agents, none with `allowed-tools`). |
332332 
333`reach` counts everything the version declares, including monitors, LSP servers, and app settings, which `components` does not list, so a version with an empty `components` list can still be `privileged`. It is `null` for a version stored before components were recorded, and for a version whose reach could not be determined because the `SKILL.md` of one of its skills, or one of its command files, could not be read; treat `null` as unclassified.
333`reach` counts everything the version declares, including monitors, LSP servers, workflows, and app settings, which `components` does not list, so a version with an empty `components` list can still be `privileged`. It is `null` for a version stored before components were recorded, and for a version whose reach could not be determined because the `SKILL.md` of one of its skills, or one of its command files, could not be read; treat `null` as unclassified. The value is normally worked out when a version is stored, under the rules of that time. An older version can therefore be `contained` where the same files stored today would be `privileged`.
334334 
335335### Upload requirements
336336 
from line 338
338338 
339339* The upload is either one `.zip` or `.plugin` archive, or a set of individual files. An archive may wrap everything in one top-level folder.
340340* It must contain exactly one manifest, at `.claude-plugin/plugin.json`, which must declare a `name`. A bare `SKILL.md` without a manifest is rejected.
341* A top-level `SKILL.md` whose frontmatter declares plugin components is merged into the manifest; `plugin.json` wins wherever both set a value.
341* A top-level `SKILL.md` whose frontmatter declares plugin components is merged into the manifest; `plugin.json` wins wherever both set a value. A `description` that the manifest takes from that `SKILL.md` is cut to its first 500 characters.
342342* `name` may contain lowercase letters (from any alphabet), digits, and hyphens, up to 64 characters. Uppercase letters, spaces, underscores, and other punctuation are rejected.
343343* `displayName` is at most 64 characters and `description` at most 500.
344344* Every `SKILL.md` needs valid YAML frontmatter with a `name` and `description`, neither containing XML tags such as `<example>`. Two skills, or two commands, cannot share a name.
from line 347
347347* File paths must be relative, contain no `..`, and use only letters, digits, spaces, and `_ . - / ( ) ,`.
348348* The request body and the uncompressed archive are each at most 200 MB; a request body over the limit returns `413` (`request_too_large`) rather than `400`. An upload has at most 5,000 files, a path depth of 12, paths of 472 characters, and file or folder names of 255 characters.
349349* ZIP archives must use DEFLATE or STORE compression, and cannot be encrypted or contain symbolic links.
350* An upload that creates a plugin is refused once the marketplace holds 1,000 items. This total includes its plugins and any skills members keep in it. Anthropic can raise this limit and the 5,000-file limit.
350* An upload that creates a plugin returns `400` once the marketplace holds 1,000 plugins. Plugins that this API does not list also count, so the limit can be reached while [List plugins](https://platform.claude.com/docs/en/manage-claude/plugins-api#list-plugins) shows fewer than 1,000 in that marketplace. Anthropic can raise the 5,000-file limit.
351351 
352352## Example workflows
353353 
from line 363
363363 
364364### Roll a plugin out to a pilot group, then to everyone
365365 
3661. Look up the pilot group’s ID with `GET /v1/organizations/rbac_groups`. That call needs the `read:rbac_groups` scope, which requires a key created for all linked organizations (see [Groups in User management](https://platform.claude.com/docs/en/manage-claude/user-management#groups)). The next steps need `write:plugins`, which acts only on the organization its key was created in, so in an enterprise with several linked organizations, create this key in the organization that holds the plugin and give it both scopes, or use a second key created there for those steps.
3661. Look up the pilot group’s ID with `GET /v1/organizations/rbac_groups`. That call needs the `read:rbac_groups` scope (see [Groups and roles in User management](https://platform.claude.com/docs/en/manage-claude/user-management#groups-and-roles)). The next steps need `write:plugins`, which acts only on the organization its key was created in, so in an enterprise with several linked organizations, create one key in the organization that holds the plugin and give it both scopes, or use a second key created there for those steps.
367367 
3683682. [Give the group its own setting](https://platform.claude.com/docs/en/manage-claude/plugins-api#set-an-installation-setting), for example `auto_install`, with `POST /v1/organizations/plugins/{plugin_id}/installation_settings/{target}`, where `{target}` is the group’s `rbac_group_` ID, while the organization-wide value stays `not_available`. Only the group’s members get the plugin.
369369 
from line 374
374374 curl -X POST "https://api.anthropic.com/v1/organizations/plugins/plugin_01Hq3vX8kZcN2mB7pR4tY9wL/installation_settings/organization" \
375375 -H "content-type: application/json" \
376376 -H "x-api-key: $ANTHROPIC_API_KEY" \
377 -H "anthropic-version: 2023-06-01" \
377 -H "anthropic-version: 2026-10-21" \
378378 -H "anthropic-beta: ce-plugins-2026-09-01" \
379379 -d '{"installation_preference": "required"}'
380380 ```
from line 515
515515 
516516The plugin object describes a plugin in one of your organization’s marketplaces or in a member’s personal marketplace (the [Quick start](https://platform.claude.com/docs/en/manage-claude/plugins-api#quick-start) response shows a complete one). Its `display_name`, `description`, `manifest_version`, `content_scan`, `components`, and `reach` describe its **served** version, so one list call shows what members are being served.
517517 
518| Field | Description |
519| ---------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
520| `id` | Prefixed `plugin_`. |
521| `name` | From the manifest. Unique within its marketplace, not across the organization. Fixed for an organization-owned plugin; changes if a member renames their own plugin in claude.ai. |
522| `display_name`, `description`, `manifest_version` | The served version’s manifest `displayName`, `description`, and `version`; each is `null` when the manifest declares none. `manifest_version` is normalized for display: one leading `v` or `V` is dropped, so a manifest `version` of `"v1.4.0"` is returned as `"1.4.0"`. It is also `null` for a value that does not look like a version number, such as `"latest"`, and for a plugin version created before claude.ai started recording this field in August 2026. An upload is never refused because of its `version`, and `manifest_version` is not unique. |
523| `served_version_id`, `latest_version_id` | Prefixed `pluginver_`: the version members are served, and the newest version. See [Versions and the served version](https://platform.claude.com/docs/en/manage-claude/plugins-api#versions-and-the-served-version). |
524| `served_version_pinned` | `false` until the plugin is pinned (see [Versions and the served version](https://platform.claude.com/docs/en/manage-claude/plugins-api#versions-and-the-served-version)); `true` from then on. |
525| `owner` | `{"type": "organization"}`, or `{"type": "user", "user_id": "user_..."}` for a member’s personal marketplace. |
526| `marketplace_id` | Prefixed `marketplace_`. |
527| `created_by` | Who created the plugin: `{"type": "user_actor", "user_id": "user_...", "email_address": "..."}` for a person in claude.ai (`email_address` might be `null`), or `{"type": "api_actor", "api_key_id": "apikey_..."}` for an API key. Other actor types may appear. `null` when no creator is recorded, such as for plugins synchronized from Git. |
528| `organization_installation_preference`, `organization_installation_preference_inherited` | Organization-owned: the organization-wide value, and whether it comes from the marketplace’s default (see [Installation settings](https://platform.claude.com/docs/en/manage-claude/plugins-api#installation-settings)). Member-owned: both `null`. |
529| `content_scan` | The served version’s scan result, an object with `status`, `assessment`, and `reason` (described after this table). `null` when it was never scanned. |
530| `components` | The served version’s components, each `{"type", "name", "description"}` with `type` one of `skill`, `mcp_server`, `command`, `agent`, `hook`, or `cli`, listed in that type order and then by name. For an MCP server, `name` is its key in the manifest; for a hook, the event it runs on; for a CLI, the executable’s name. `description` is always `null` for MCP servers, hooks, and CLIs. `null` when not recorded. |
531| `reach` | `contained`, `privileged`, or `remote`. See [Reach](https://platform.claude.com/docs/en/manage-claude/plugins-api#reach). |
532| `updated_at` | Changes when the served version changes, when the plugin becomes pinned, and normally when a new version is stored. A waiting version (see [Versions and the served version](https://platform.claude.com/docs/en/manage-claude/plugins-api#versions-and-the-served-version)) changes it when it becomes the served version, not necessarily when it is stored. It does not change for installation settings, shares, or a change to `content_scan` alone. |
518| Field | Description |
519| ---------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
520| `id` | Prefixed `plugin_`. |
521| `name` | From the manifest. Unique within its marketplace, not across the organization. Fixed for an organization-owned plugin; changes if a member renames their own plugin in claude.ai. |
522| `display_name`, `description`, `manifest_version` | The served version’s manifest `displayName`, `description`, and `version`; each is `null` when the manifest declares none. `description` might be a skill’s `description` rather than the manifest’s (described after this table). `manifest_version` is normalized for display: one leading `v` or `V` is dropped, so a manifest `version` of `"v1.4.0"` is returned as `"1.4.0"`. It is also `null` for a value that does not look like a version number, such as `"latest"`, and for a plugin version created before claude.ai started recording this field in August 2026. An upload is never refused because of its `version`, and `manifest_version` is not unique. |
523| `served_version_id`, `latest_version_id` | Prefixed `pluginver_`: the version members are served, and the newest version. See [Versions and the served version](https://platform.claude.com/docs/en/manage-claude/plugins-api#versions-and-the-served-version). |
524| `served_version_pinned` | `false` until the plugin is pinned (see [Versions and the served version](https://platform.claude.com/docs/en/manage-claude/plugins-api#versions-and-the-served-version)); `true` from then on. |
525| `owner` | `{"type": "organization"}`, or `{"type": "user", "user_id": "user_..."}` for a member’s personal marketplace. |
526| `marketplace_id` | Prefixed `marketplace_`. |
527| `created_by` | Who created the plugin: `{"type": "user_actor", "user_id": "user_...", "email_address": "..."}` for a person in claude.ai (`email_address` might be `null`), or `{"type": "api_actor", "api_key_id": "apikey_..."}` for an API key. Other actor types may appear. `null` when no creator is recorded, such as for plugins synchronized from Git. |
528| `organization_installation_preference`, `organization_installation_preference_inherited` | Organization-owned: the organization-wide value, and whether it comes from the marketplace’s default (see [Installation settings](https://platform.claude.com/docs/en/manage-claude/plugins-api#installation-settings)). Member-owned: both `null`. |
529| `content_scan` | The served version’s scan result, an object with `status`, `assessment`, and `reason` (described after this table). `null` when it was never scanned. |
530| `components` | The served version’s components, each `{"type", "name", "description"}` with `type` one of `skill`, `mcp_server`, `command`, `agent`, `hook`, or `cli`, listed in that type order and then by name. For an MCP server, `name` is its key in the manifest; for a hook, the event it runs on; for a CLI, the executable’s name. `description` is always `null` for MCP servers, hooks, and CLIs. `null` when not recorded. |
531| `reach` | `contained`, `privileged`, or `remote`. See [Reach](https://platform.claude.com/docs/en/manage-claude/plugins-api#reach). |
532| `updated_at` | Changes when the served version changes, when the plugin becomes pinned, and normally when a new version is stored. A waiting version (see [Versions and the served version](https://platform.claude.com/docs/en/manage-claude/plugins-api#versions-and-the-served-version)) changes it when it becomes the served version, not necessarily when it is stored. It does not change for installation settings, shares, or a change to `content_scan` alone. |
533533 
534`description` is not always the manifest’s. A `description` that the manifest takes from a top-level `SKILL.md` is cut to its first 500 characters (see [Upload requirements](https://platform.claude.com/docs/en/manage-claude/plugins-api#upload-requirements)). If the manifest’s `description` is the first 500 characters of exactly one distinct skill `description` in `components`, the API returns that skill `description` instead. As a result:
535 
536* A `description` that you read might be longer than 500 characters, the limit for an uploaded manifest. An upload whose `plugin.json` sets such a `description` returns `400`.
537* In the [files you download](https://platform.claude.com/docs/en/manage-claude/plugins-api#download-a-versions-files), `.claude-plugin/plugin.json` might have a different `description`, or none.
538 
534539The `content_scan` object:
535540 
536541| Field | Description |
from line 563
558563 | `other` | Any other concern, including one newer than this list. |
559564</Accordion>
560565 
561A `plugin_id` that lacks the `plugin_` prefix returns `400`. A `plugin_id` that carries the prefix but does not resolve, belongs to another organization, or refers to a standalone skill returns `404`.
566A `plugin_id` that lacks the `plugin_` prefix returns `400`. A `plugin_id` that carries the prefix but is not in your organization’s inventory returns `404`.
562567 
563568### List plugins
564569 
565`GET /v1/organizations/plugins` lists every plugin in your organization, in the organization’s marketplaces and in members’ personal marketplaces, ordered by `created_at` descending. Filter by `owner_type` (`organization` or `user`), `owner_user_id` (an ID prefixed `user_`, which finds a member’s plugins, including after the member leaves the organization), `marketplace_id`, and `created_at[gte]`, `created_at[gt]`, `created_at[lte]`, `created_at[lt]` (RFC 3339 timestamps). Filters combine with AND. A `marketplace_id` or `owner_user_id` that matches nothing in your organization returns an empty page, not an error. The response has the shape shown in [Quick start](https://platform.claude.com/docs/en/manage-claude/plugins-api#quick-start). Requires the `read:plugins` scope.
570`GET /v1/organizations/plugins` lists the plugins in your organization, in the organization’s marketplaces and in members’ personal marketplaces, ordered by `created_at` descending. Filter by `owner_type` (`organization` or `user`), `owner_user_id` (an ID prefixed `user_`, which finds a member’s plugins, including after the member leaves the organization), `marketplace_id`, and `created_at[gte]`, `created_at[gt]`, `created_at[lte]`, `created_at[lt]` (RFC 3339 timestamps). Filters combine with AND. A `marketplace_id` or `owner_user_id` that matches nothing in your organization returns an empty page, not an error. The response has the shape shown in [Quick start](https://platform.claude.com/docs/en/manage-claude/plugins-api#quick-start). Requires the `read:plugins` scope.
566571 
567572<CodeGroup>
568573 ```bash cURL
569574 curl "https://api.anthropic.com/v1/organizations/plugins?owner_type=organization&limit=20" \
570575 -H "x-api-key: $ANTHROPIC_API_KEY" \
571 -H "anthropic-version: 2023-06-01" \
576 -H "anthropic-version: 2026-10-21" \
572577 -H "anthropic-beta: ce-plugins-2026-09-01"
573578 ```
574579 
from line 684
679684 
680685### Create a plugin
681686 
682`POST /v1/organizations/plugins` creates an organization-owned plugin and its first version in one call; the version becomes the served version. The body is `multipart/form-data`: `files[]` is either one `.zip` or `.plugin` archive, or one part for each file, where each part’s file name is the file’s path within the plugin (for example `.claude-plugin/plugin.json`). Optional fields are `marketplace_id` (an organization-owned `manual` marketplace, or by default your library marketplace, which is created on first use) and `release_notes` (up to 5,000 characters, shown in claude.ai’s version history and returned on the version). The plugin’s `name`, `display_name`, `description`, and `manifest_version` come from the uploaded manifest, and the upload must meet the [upload requirements](https://platform.claude.com/docs/en/manage-claude/plugins-api#upload-requirements). When content scanning is on, the response’s `content_scan.status` is `processing` and the verdict arrives asynchronously. Returns the plugin. Requires the `write:plugins` scope.
687`POST /v1/organizations/plugins` creates an organization-owned plugin and its first version in one call; the version becomes the served version. The body is `multipart/form-data`: `files[]` is either one `.zip` or `.plugin` archive, or one part for each file, where each part’s file name is the file’s path within the plugin (for example `.claude-plugin/plugin.json`). Optional fields are `marketplace_id` (an organization-owned `manual` marketplace, or by default your library marketplace, which is created on first use) and `release_notes` (up to 5,000 characters, shown in claude.ai’s version history and returned on the version). The plugin’s `name`, `display_name`, `description`, and `manifest_version` come from the uploaded files, and the upload must meet the [upload requirements](https://platform.claude.com/docs/en/manage-claude/plugins-api#upload-requirements). When content scanning is on, the response’s `content_scan.status` is `processing` and the verdict arrives asynchronously. Returns the plugin. Requires the `write:plugins` scope.
683688 
684689Upload an archive:
685690 
from line 692
687692 ```bash cURL
688693 curl -X POST "https://api.anthropic.com/v1/organizations/plugins" \
689694 -H "x-api-key: $ANTHROPIC_API_KEY" \
690 -H "anthropic-version: 2023-06-01" \
695 -H "anthropic-version: 2026-10-21" \
691696 -H "anthropic-beta: ce-plugins-2026-09-01" \
692697 -F "files[]=@dist/sales-toolkit.zip" \
693698 -F "release_notes=First release"
from line 858
853858 ```bash cURL
854859 curl -X POST "https://api.anthropic.com/v1/organizations/plugins" \
855860 -H "x-api-key: $ANTHROPIC_API_KEY" \
856 -H "anthropic-version: 2023-06-01" \
861 -H "anthropic-version: 2026-10-21" \
857862 -H "anthropic-beta: ce-plugins-2026-09-01" \
858863 -F "files[][email protected]/plugin.json;filename=.claude-plugin/plugin.json" \
859864 -F "files[]=@skills/account-research/SKILL.md;filename=skills/account-research/SKILL.md" \
from line 1048
10431048 
10441049Besides a `400` for an upload that breaks the [upload requirements](https://platform.claude.com/docs/en/manage-claude/plugins-api#upload-requirements) (`413` for a request body over 200 MB) and the shared responses (a `403` when `marketplace_id` is a member’s personal marketplace; see [Error responses](https://platform.claude.com/docs/en/manage-claude/plugins-api#error-responses)), a create can fail with:
10451050 
1046| Status | Cause | What to do |
1047| -------------------------- | -------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1048| 404 | `marketplace_id` is not a marketplace of your organization. | Take the ID from [List marketplaces](https://platform.claude.com/docs/en/manage-claude/plugins-api#list-marketplaces). |
1049| 400 | The marketplace is synchronized from Git, or already holds 1,000 plugins and skills. | Upload to a `manual` marketplace, or change the repository instead. |
1050| 409 `plugin_name_taken` | The name is taken in that marketplace. | Upload a version to `details.plugin_id` only if it is the plugin you meant to update, because someone else might have made it. Otherwise, upload under another name (change the manifest `name`). |
1051| 409 `skill_name_taken` | The plugin is going into the library marketplace and one of its skills has an organization skill’s name. | Rename the skill, or remove the organization skill in claude.ai. |
1052| 409 (no `error_code`) | Another upload with the same name to the same marketplace is still in progress. | Retry shortly. |
1053| 503 `registration_pending` | The plugin was created but its registration did not complete. | Do not resend; upload the same files as a version of `details.plugin_id` (see [Retrying uploads](https://platform.claude.com/docs/en/manage-claude/plugins-api#retrying-uploads)). |
1051| Status | Cause | What to do |
1052| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1053| 404 | `marketplace_id` is not a marketplace of your organization. | Take the ID from [List marketplaces](https://platform.claude.com/docs/en/manage-claude/plugins-api#list-marketplaces). |
1054| 400 | The marketplace is synchronized from Git, or already holds 1,000 plugins (see [Upload requirements](https://platform.claude.com/docs/en/manage-claude/plugins-api#upload-requirements)). | Upload to another `manual` marketplace, or change the repository instead. |
1055| 409 `plugin_name_taken` | The name is taken in that marketplace. | Upload a version to `details.plugin_id` only if it is the plugin you meant to update, because someone else might have made it. Otherwise, or when `details.plugin_id` is absent, upload under another name (change the manifest `name`). |
1056| 409 `skill_name_taken` | The plugin is going into the library marketplace and one of its skills has an organization skill’s name. | Rename the skill, or remove the organization skill in claude.ai. |
1057| 409 (no `error_code`) | Another upload with the same name to the same marketplace is in progress, or a plugin that this API does not list holds the name. | Retry with backoff. If the `409` persists for more than a few minutes, upload under another name (change the manifest `name`). |
1058| 503 `registration_pending` | The plugin was created but its registration did not complete. | Do not resend; upload the same files as a version of `details.plugin_id` (see [Retrying uploads](https://platform.claude.com/docs/en/manage-claude/plugins-api#retrying-uploads)). |
10541059 
10551060### Get a plugin
10561061 
from line 1065
10601065 ```bash cURL
10611066 curl "https://api.anthropic.com/v1/organizations/plugins/plugin_01Hq3vX8kZcN2mB7pR4tY9wL" \
10621067 -H "x-api-key: $ANTHROPIC_API_KEY" \
1063 -H "anthropic-version: 2023-06-01" \
1068 -H "anthropic-version: 2026-10-21" \
10641069 -H "anthropic-beta: ce-plugins-2026-09-01"
10651070 ```
10661071 
from line 1160
11551160 curl -X POST "https://api.anthropic.com/v1/organizations/plugins/plugin_01Hq3vX8kZcN2mB7pR4tY9wL" \
11561161 -H "content-type: application/json" \
11571162 -H "x-api-key: $ANTHROPIC_API_KEY" \
1158 -H "anthropic-version: 2023-06-01" \
1163 -H "anthropic-version: 2026-10-21" \
11591164 -H "anthropic-beta: ce-plugins-2026-09-01" \
11601165 -d '{"served_version_id": "pluginver_01Jd5sK2nQ8wE4rT6yU1iO3p"}'
11611166 ```
from line 1323
13181323 ```bash cURL
13191324 curl -X DELETE "https://api.anthropic.com/v1/organizations/plugins/plugin_01Hq3vX8kZcN2mB7pR4tY9wL" \
13201325 -H "x-api-key: $ANTHROPIC_API_KEY" \
1321 -H "anthropic-version: 2023-06-01" \
1326 -H "anthropic-version: 2026-10-21" \
13221327 -H "anthropic-beta: ce-plugins-2026-09-01"
13231328 ```
13241329 
from line 1423
14181423 ```bash cURL
14191424 curl "https://api.anthropic.com/v1/organizations/plugins/plugin_01Hq3vX8kZcN2mB7pR4tY9wL/versions?limit=50" \
14201425 -H "x-api-key: $ANTHROPIC_API_KEY" \
1421 -H "anthropic-version: 2023-06-01" \
1426 -H "anthropic-version: 2026-10-21" \
14221427 -H "anthropic-beta: ce-plugins-2026-09-01"
14231428 ```
14241429 
from line 1544
15391544 ```bash cURL
15401545 curl -X POST "https://api.anthropic.com/v1/organizations/plugins/plugin_01Hq3vX8kZcN2mB7pR4tY9wL/versions" \
15411546 -H "x-api-key: $ANTHROPIC_API_KEY" \
1542 -H "anthropic-version: 2023-06-01" \
1547 -H "anthropic-version: 2026-10-21" \
15431548 -H "anthropic-beta: ce-plugins-2026-09-01" \
15441549 -F "files[]=@dist/sales-toolkit.zip" \
15451550 -F "release_notes=Adds the call-prep command."
from line 1733
17281733 ```bash cURL
17291734 curl "https://api.anthropic.com/v1/organizations/plugins/plugin_01Hq3vX8kZcN2mB7pR4tY9wL/versions/latest" \
17301735 -H "x-api-key: $ANTHROPIC_API_KEY" \
1731 -H "anthropic-version: 2023-06-01" \
1736 -H "anthropic-version: 2026-10-21" \
17321737 -H "anthropic-beta: ce-plugins-2026-09-01"
17331738 ```
17341739 
from line 1846
18411846 ```bash cURL
18421847 curl "https://api.anthropic.com/v1/organizations/plugins/plugin_01Hq3vX8kZcN2mB7pR4tY9wL/versions/pluginver_01Km7tL4pR9xF5sU2zV3jP6q/content" \
18431848 -H "x-api-key: $ANTHROPIC_API_KEY" \
1844 -H "anthropic-version: 2023-06-01" \
1849 -H "anthropic-version: 2026-10-21" \
18451850 -H "anthropic-beta: ce-plugins-2026-09-01" \
18461851 -o plugin_01Hq3vX8kZcN2mB7pR4tY9wL_pluginver_01Km7tL4pR9xF5sU2zV3jP6q.zip
18471852 ```
from line 1992
19871992 ```bash cURL
19881993 curl "https://api.anthropic.com/v1/organizations/plugins/plugin_01Hq3vX8kZcN2mB7pR4tY9wL/installation_settings" \
19891994 -H "x-api-key: $ANTHROPIC_API_KEY" \
1990 -H "anthropic-version: 2023-06-01" \
1995 -H "anthropic-version: 2026-10-21" \
19911996 -H "anthropic-beta: ce-plugins-2026-09-01"
19921997 ```
19931998 
from line 2103
20982103 curl -X POST "https://api.anthropic.com/v1/organizations/plugins/plugin_01Hq3vX8kZcN2mB7pR4tY9wL/installation_settings/rbac_group_01F3xQqQzXyWvUtSrQpOnMlK" \
20992104 -H "content-type: application/json" \
21002105 -H "x-api-key: $ANTHROPIC_API_KEY" \
2101 -H "anthropic-version: 2023-06-01" \
2106 -H "anthropic-version: 2026-10-21" \
21022107 -H "anthropic-beta: ce-plugins-2026-09-01" \
21032108 -d '{"installation_preference": "available"}'
21042109 ```
from line 2249
22442249 ```bash cURL
22452250 curl -X DELETE "https://api.anthropic.com/v1/organizations/plugins/plugin_01Hq3vX8kZcN2mB7pR4tY9wL/installation_settings/rbac_group_01F3xQqQzXyWvUtSrQpOnMlK" \
22462251 -H "x-api-key: $ANTHROPIC_API_KEY" \
2247 -H "anthropic-version: 2023-06-01" \
2252 -H "anthropic-version: 2026-10-21" \
22482253 -H "anthropic-beta: ce-plugins-2026-09-01"
22492254 ```
22502255 
from line 2370
23652370 ```bash cURL
23662371 curl "https://api.anthropic.com/v1/organizations/plugins/plugin_01Mr2wP7sU3aJ8vX5cY6nS9t/shares" \
23672372 -H "x-api-key: $ANTHROPIC_API_KEY" \
2368 -H "anthropic-version: 2023-06-01" \
2373 -H "anthropic-version: 2026-10-21" \
23692374 -H "anthropic-beta: ce-plugins-2026-09-01"
23702375 ```
23712376 
from line 2519
25142519 ```bash cURL
25152520 curl "https://api.anthropic.com/v1/organizations/plugin_marketplaces?owner_type=organization" \
25162521 -H "x-api-key: $ANTHROPIC_API_KEY" \
2517 -H "anthropic-version: 2023-06-01" \
2522 -H "anthropic-version: 2026-10-21" \
25182523 -H "anthropic-beta: ce-plugins-2026-09-01"
25192524 ```
25202525 
from line 2637
26322637 ```bash cURL
26332638 curl "https://api.anthropic.com/v1/organizations/plugin_marketplaces/marketplace_01Lp8uM5qS1yG6tV3aW4kQ7r" \
26342639 -H "x-api-key: $ANTHROPIC_API_KEY" \
2635 -H "anthropic-version: 2023-06-01" \
2640 -H "anthropic-version: 2026-10-21" \
26362641 -H "anthropic-beta: ce-plugins-2026-09-01"
26372642 ```
26382643 
from line 2736
27312736 curl -X POST "https://api.anthropic.com/v1/organizations/plugin_marketplaces/marketplace_01Lp8uM5qS1yG6tV3aW4kQ7r" \
27322737 -H "content-type: application/json" \
27332738 -H "x-api-key: $ANTHROPIC_API_KEY" \
2734 -H "anthropic-version: 2023-06-01" \
2739 -H "anthropic-version: 2026-10-21" \
27352740 -H "anthropic-beta: ce-plugins-2026-09-01" \
27362741 -d '{"default_installation_preference": "available"}'
27372742 ```
from line 2875
28702875 curl -X POST "https://api.anthropic.com/v1/organizations/plugin_marketplaces/validate_repository" \
28712876 -H "content-type: application/json" \
28722877 -H "x-api-key: $ANTHROPIC_API_KEY" \
2873 -H "anthropic-version: 2023-06-01" \
2878 -H "anthropic-version: 2026-10-21" \
28742879 -H "anthropic-beta: ce-plugins-2026-09-01" \
28752880 -d '{"repository_url": "https://github.com/example-org/claude-plugins", "ref": "release-candidate"}'
28762881 ```
from line 3031
30263031 ```bash cURL
30273032 curl -X POST "https://api.anthropic.com/v1/organizations/plugin_marketplaces/validate_archive" \
30283033 -H "x-api-key: $ANTHROPIC_API_KEY" \
3029 -H "anthropic-version: 2023-06-01" \
3034 -H "anthropic-version: 2026-10-21" \
30303035 -H "anthropic-beta: ce-plugins-2026-09-01" \
30313036 -F "[email protected]"
30323037 ```
from line 3159
31543159 
31553160## Rate limiting
31563161 
3157Read requests (every `GET` endpoint on this page) share a limit of **300 requests per minute** for each organization. Write requests (creating a plugin or version, changing the served version, deleting, setting or removing an installation setting, and updating a marketplace) share a limit of **60 requests per minute** for each organization. A marketplace validation (either endpoint) counts as a read, and validations are additionally limited to 10 a minute for each organization across both endpoints; both limits are checked before the request body is read. These limits are counted across all of your organization’s keys and are separate from your organization’s other Admin API limits. Requests over a limit return **429 Too Many Requests** with a `retry-after` header. Responses include `anthropic-ratelimit-requests-*` headers for the limit that applies (on marketplace validation, its 10-per-minute limit; on a `429`, whichever limit refused the request).
3162Read requests (every `GET` endpoint on this page) share a limit of **300 requests per minute** for each organization. Write requests (creating a plugin or version, changing the served version, deleting, setting or removing an installation setting, and updating a marketplace) share a limit of **60 requests per minute** for each organization. A marketplace validation (either endpoint) counts as a read, and validations are additionally limited to 10 a minute for each organization across both endpoints; both limits are checked before the request body is read. These limits are counted across all of your organization’s keys and are separate from your organization’s other Admin API limits. A read that passes `organization_id` counts against the limit of the organization the key was created in, or of the parent organization if the key has no organization of its own. Requests over a limit return **429 Too Many Requests** with a `retry-after` header. Responses include `anthropic-ratelimit-requests-*` headers for the limit that applies (on marketplace validation, its 10-per-minute limit; on a `429`, whichever limit refused the request).
31583163 
31593164An upload, a served-version change, or a validation can also return `429` with `retry-after` when the service briefly has no capacity for another one, and an upload returns `429` when your organization has exceeded its content-scan rate. Handle all of these the same way: wait for `retry-after`, then retry. Separately from these limits, send installation-setting writes for the same plugin one at a time: when several arrive at the same time, some can be answered with `503` and `x-should-retry: true`, and those are safe to send again after a second or two (see [Set an installation setting](https://platform.claude.com/docs/en/manage-claude/plugins-api#set-an-installation-setting)).
31603165 
from line 3202
31973202}
31983203```
31993204 
3200| `error_code` | Status | Meaning and what to do |
3201| ----------------------------------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
3202| `plugin_name_taken` | 409 | A plugin with this name already exists in the marketplace. `details.plugin_id` is that plugin, and someone else might have made it. To see who, [get the plugin](https://platform.claude.com/docs/en/manage-claude/plugins-api#get-a-plugin) and read its `created_by`, which is `null` when no creator is recorded. Upload versions to it only if it is the plugin you meant to update. Otherwise, upload under another name. When `plugin_id` is absent, the name is held by a standalone skill: upload under another name, or delete the skill in claude.ai. |
3203| `skill_name_taken` | 409 | The plugin is in the library marketplace and one of its skills has the same name as an organization skill (a skill an administrator uploaded for the whole organization in claude.ai). `details.skill_name` names it. Rename or remove one of them. |
3204| `registration_pending` | 503 | The files were stored, but the plugin’s skills could not yet be made available to members. See [Retrying uploads](https://platform.claude.com/docs/en/manage-claude/plugins-api#retrying-uploads). |
3205| `scan_pending` | 409 | The version’s `content_scan` reads `processing`. Retry once the scan finishes. |
3206| `scan_failed` | 400 | The version’s `content_scan` reads `fail`, `unknown`, or `errored`, so it cannot be served. Choose another version. |
3207| `cmek_key_disabled`, `cmek_key_network_blocked` | 400 | Your organization’s customer-managed encryption key is unavailable. See [Customer-managed encryption keys](https://platform.claude.com/docs/en/manage-claude/plugins-api#customer-managed-encryption-keys). |
3208| `unsupported_charset` | 400 | On an upload or `validate_archive`, the request’s `Content-Type` header names a charset other than UTF-8, ISO-8859-1, or US-ASCII. Send the request with no charset, or with one of these. |
3205| `error_code` | Status | Meaning and what to do |
3206| ----------------------------------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
3207| `plugin_name_taken` | 409 | The marketplace already holds this name. `details.plugin_id` is the plugin that holds it, and someone else might have made it. To see who, [get the plugin](https://platform.claude.com/docs/en/manage-claude/plugins-api#get-a-plugin) and read its `created_by`, which is `null` when no creator is recorded. Upload versions to it only if it is the plugin you meant to update. Otherwise, or when `plugin_id` is absent, upload under another name. |
3208| `skill_name_taken` | 409 | The plugin is in the library marketplace and one of its skills has the same name as an organization skill (a skill an administrator uploaded for the whole organization in claude.ai). `details.skill_name` names it. Rename or remove one of them. |
3209| `registration_pending` | 503 | The files were stored, but the plugin’s skills could not yet be made available to members. See [Retrying uploads](https://platform.claude.com/docs/en/manage-claude/plugins-api#retrying-uploads). |
3210| `scan_pending` | 409 | The version’s `content_scan` reads `processing`. Retry once the scan finishes. |
3211| `scan_failed` | 400 | The version’s `content_scan` reads `fail`, `unknown`, or `errored`, so it cannot be served. Choose another version. |
3212| `cmek_key_disabled`, `cmek_key_network_blocked` | 400 | Your organization’s customer-managed encryption key is unavailable. See [Customer-managed encryption keys](https://platform.claude.com/docs/en/manage-claude/plugins-api#customer-managed-encryption-keys). |
3213| `unsupported_charset` | 400 | On an upload or `validate_archive`, the request’s `Content-Type` header names a charset other than UTF-8, ISO-8859-1, or US-ASCII. Send the request with no charset, or with one of these. |
32093214 
32103215New codes may be added. Treat a code you do not recognize the way you treat its status.
32113216 
from line 3243
32383243| `claude_plugin_archive_accessed` | A member-owned plugin’s archive is downloaded. |
32393244| `claude_plugin_security_scan_completed` | A content scan completes. |
32403245 
3241The plugin, version, and marketplace IDs in these events are the same IDs this API returns. `plugin_installation_preference_updated` identifies the plugin by its `name` and `marketplace_id` rather than its `id`. In `claude_plugin_security_scan_completed`, `plugin_version` is not a version ID, and no field of a [plugin version](https://platform.claude.com/docs/en/manage-claude/plugins-api#plugin-versions) corresponds to it.
3246The plugin, version, and marketplace IDs in these events are the same IDs this API returns. An event can also name a marketplace that this API does not list, such as a marketplace of plugins that Anthropic publishes. `plugin_installation_preference_updated` identifies the plugin by its `name` and `marketplace_id` rather than its `id`. In `claude_plugin_security_scan_completed`, `plugin_version` is not a version ID, and no field of a [plugin version](https://platform.claude.com/docs/en/manage-claude/plugins-api#plugin-versions) corresponds to it.
32423247 
32433248Changing a marketplace’s default records one `marketplace_updated` event and no per-plugin events, even though it changes the value of every plugin that inherits the default. Reads are not recorded, except downloads of a member-owned plugin’s archive. A write that changes nothing records nothing.
32443249 

manage-claude/rate-limits-api Changed · +8 / -17 lines

from line 13
1313Use this API to:
1414 
1515* **Keep gateways and proxies in sync:** Read your current limits at startup and on a schedule instead of hardcoding values that drift when Anthropic adjusts them.
16* **Power internal alerting:** Compare usage data from the [Usage and Cost Analytics API](https://platform.claude.com/docs/en/manage-claude/usage-cost-analytics-api) against your configured limits.
16* **Review headroom:** Compare past usage from the [Usage and Cost Analytics API](https://platform.claude.com/docs/en/manage-claude/usage-cost-analytics-api) against your configured limits.
1717* **Audit workspace configuration:** Verify that workspace overrides match what your provisioning automation expects.
1818* **Manage workspace limits from code:** Set and clear each workspace’s limits from your provisioning automation instead of editing them in the Console.
1919 
from line 31
3131 ```bash cURL
3232 curl "https://api.anthropic.com/v1/organizations/rate_limits" \
3333 -H "x-api-key: $ANTHROPIC_API_KEY" \
34 -H "anthropic-version: 2023-06-01"
34 -H "anthropic-version: 2026-10-21"
3535 ```
3636 
3737 ```bash CLI
from line 168
168168 ```bash cURL
169169 curl "https://api.anthropic.com/v1/organizations/rate_limits" \
170170 -H "x-api-key: $ANTHROPIC_API_KEY" \
171 -H "anthropic-version: 2023-06-01"
171 -H "anthropic-version: 2026-10-21"
172172 ```
173173 
174174 ```bash CLI
from line 289
289289 {
290290 "id": "rlt_01NwFawrTvAijwqn8AjKVBPS",
291291 "type": "rate_limit",
292 "group_type": "model_group",
293292 "group": {
294293 "type": "model_group",
295294 "id": "rlg_01Hq7YkP3mZ9dTwRx4cVbN2s",
from line 304
305304 {
306305 "id": "rlt_016qriyigbdebqkzhMujdHkX",
307306 "type": "rate_limit",
308 "group_type": "model_group",
309307 "group": {
310308 "type": "model_group",
311309 "id": "rlg_01Kd5wMv8nSq2LcXy6tRfJ4b",
from line 325
327325 {
328326 "id": "rlt_01EyY8kq14eviKJPgepbgBH4",
329327 "type": "rate_limit",
330 "group_type": "batch",
331328 "group": { "type": "batch", "id": "rlg_01Wn3pBz6kCg9vHtQ7mLxD5a" },
332329 "models": null,
333330 "limits": [{ "type": "enqueued_batch_requests", "value": 500000 }]
from line 342
345342 ```bash cURL
346343 curl "https://api.anthropic.com/v1/organizations/rate_limits?model=claude-opus-5-5" \
347344 -H "x-api-key: $ANTHROPIC_API_KEY" \
348 -H "anthropic-version: 2023-06-01"
345 -H "anthropic-version: 2026-10-21"
349346 ```
350347 
351348 ```bash CLI
from line 498
501498 ```bash cURL
502499 curl "https://api.anthropic.com/v1/organizations/workspaces/wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ/rate_limits" \
503500 -H "x-api-key: $ANTHROPIC_API_KEY" \
504 -H "anthropic-version: 2023-06-01"
501 -H "anthropic-version: 2026-10-21"
505502 ```
506503 
507504 ```bash CLI
from line 635
638635 "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ",
639636 "rate_limit_id": "rlt_01NwFawrTvAijwqn8AjKVBPS",
640637 "type": "workspace_rate_limit",
641 "group_type": "model_group",
642638 "group": {
643639 "type": "model_group",
644640 "id": "rlg_01Hq7YkP3mZ9dTwRx4cVbN2s",
from line 660
664660 "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ",
665661 "rate_limit_id": "rlt_016qriyigbdebqkzhMujdHkX",
666662 "type": "workspace_rate_limit",
667 "group_type": "model_group",
668663 "group": {
669664 "type": "model_group",
670665 "id": "rlg_01Kd5wMv8nSq2LcXy6tRfJ4b",
from line 704
709704 ```bash cURL
710705 curl "https://api.anthropic.com/v1/organizations/workspaces/wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ/rate_limits?include_inherited=true" \
711706 -H "x-api-key: $ANTHROPIC_API_KEY" \
712 -H "anthropic-version: 2023-06-01"
707 -H "anthropic-version: 2026-10-21"
713708 ```
714709 
715710 ```bash CLI
from line 856
861856 "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ",
862857 "rate_limit_id": "rlt_01NwFawrTvAijwqn8AjKVBPS",
863858 "type": "workspace_rate_limit",
864 "group_type": "model_group",
865859 "group": {
866860 "type": "model_group",
867861 "id": "rlg_01Hq7YkP3mZ9dTwRx4cVbN2s",
from line 887
893887 "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ",
894888 "rate_limit_id": "rlt_016qriyigbdebqkzhMujdHkX",
895889 "type": "workspace_rate_limit",
896 "group_type": "model_group",
897890 "group": {
898891 "type": "model_group",
899892 "id": "rlg_01Kd5wMv8nSq2LcXy6tRfJ4b",
from line 924
931924 "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ",
932925 "rate_limit_id": "rlt_01EyY8kq14eviKJPgepbgBH4",
933926 "type": "workspace_rate_limit",
934 "group_type": "batch",
935927 "group": { "type": "batch", "id": "rlg_01Wn3pBz6kCg9vHtQ7mLxD5a" },
936928 "models": null,
937929 "limits": [
from line 974
982974 ```bash cURL
983975 curl "https://api.anthropic.com/v1/organizations/workspaces/wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ/rate_limits/rlt_01NwFawrTvAijwqn8AjKVBPS" \
984976 -H "x-api-key: $ANTHROPIC_API_KEY" \
985 -H "anthropic-version: 2023-06-01" \
977 -H "anthropic-version: 2026-10-21" \
986978 -H "content-type: application/json" \
987979 -d '{
988980 "limits": [
from line 1150
11581150 "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ",
11591151 "rate_limit_id": "rlt_01NwFawrTvAijwqn8AjKVBPS",
11601152 "type": "workspace_rate_limit",
1161 "group_type": "model_group",
11621153 "group": {
11631154 "type": "model_group",
11641155 "id": "rlg_01Hq7YkP3mZ9dTwRx4cVbN2s",
from line 1177
11861177 ```bash cURL
11871178 curl "https://api.anthropic.com/v1/organizations/rate_limits?group_type=batch" \
11881179 -H "x-api-key: $ANTHROPIC_API_KEY" \
1189 -H "anthropic-version: 2023-06-01"
1180 -H "anthropic-version: 2026-10-21"
11901181 ```
11911182 
11921183 ```bash CLI

manage-claude/spend-limits-api Changed · +17 / -17 lines

from line 44
4444 ```bash cURL
4545 curl "https://api.anthropic.com/v1/organizations/spend_limits/effective?limit=20" \
4646 -H "x-api-key: $ANTHROPIC_API_KEY" \
47 -H "anthropic-version: 2023-06-01"
47 -H "anthropic-version: 2026-10-21"
4848 ```
4949 
5050 ```bash CLI
from line 246
246246 ```bash cURL
247247 curl "https://api.anthropic.com/v1/organizations/spend_limits/effective?limit=20" \
248248 -H "x-api-key: $ANTHROPIC_API_KEY" \
249 -H "anthropic-version: 2023-06-01"
249 -H "anthropic-version: 2026-10-21"
250250 ```
251251 
252252 ```bash CLI
from line 406
406406 ```bash cURL
407407 curl "https://api.anthropic.com/v1/organizations/spend_limits/spl_01AbCdEfGhIjKlMnOpQrSt" \
408408 -H "x-api-key: $ANTHROPIC_API_KEY" \
409 -H "anthropic-version: 2023-06-01"
409 -H "anthropic-version: 2026-10-21"
410410 ```
411411 
412412 ```bash CLI
from line 510
510510 curl -X POST "https://api.anthropic.com/v1/organizations/spend_limits" \
511511 -H "content-type: application/json" \
512512 -H "x-api-key: $ANTHROPIC_API_KEY" \
513 -H "anthropic-version: 2023-06-01" \
513 -H "anthropic-version: 2026-10-21" \
514514 -d '{
515515 "scope": {"type": "user", "user_id": "user_01AbCdEfGh"},
516516 "amount": "75000"
from line 648
648648 ```bash cURL
649649 curl -X DELETE "https://api.anthropic.com/v1/organizations/spend_limits/spl_01RsTuVwXyZaBcDeFgHiJk" \
650650 -H "x-api-key: $ANTHROPIC_API_KEY" \
651 -H "anthropic-version: 2023-06-01"
651 -H "anthropic-version: 2026-10-21"
652652 ```
653653 
654654 ```bash CLI
from line 735
735735 ```bash cURL
736736 curl -g "https://api.anthropic.com/v1/organizations/spend_limit_increase_requests?status[]=pending&limit=50" \
737737 -H "x-api-key: $ANTHROPIC_API_KEY" \
738 -H "anthropic-version: 2023-06-01"
738 -H "anthropic-version: 2026-10-21"
739739 ```
740740 
741741 ```bash CLI
from line 855
855855 ```bash cURL
856856 curl "https://api.anthropic.com/v1/organizations/spend_limit_increase_requests/slir_01AbCdEfGhIjKlMnOpQrSt" \
857857 -H "x-api-key: $ANTHROPIC_API_KEY" \
858 -H "anthropic-version: 2023-06-01"
858 -H "anthropic-version: 2026-10-21"
859859 ```
860860 
861861 ```bash CLI
from line 952
952952 curl -X POST "https://api.anthropic.com/v1/organizations/spend_limit_increase_requests/slir_01AbCdEfGhIjKlMnOpQrSt/approve" \
953953 -H "content-type: application/json" \
954954 -H "x-api-key: $ANTHROPIC_API_KEY" \
955 -H "anthropic-version: 2023-06-01" \
955 -H "anthropic-version: 2026-10-21" \
956956 -d '{"amount": "75000", "suppress_notification": true}'
957957 ```
958958 
from line 1076
10761076 curl -X POST "https://api.anthropic.com/v1/organizations/spend_limit_increase_requests/slir_01AbCdEfGhIjKlMnOpQrSt/deny" \
10771077 -H "content-type: application/json" \
10781078 -H "x-api-key: $ANTHROPIC_API_KEY" \
1079 -H "anthropic-version: 2023-06-01" \
1079 -H "anthropic-version: 2026-10-21" \
10801080 -d '{"suppress_notification": true}'
10811081 ```
10821082 
from line 1199
11991199 ```bash cURL
12001200 curl -g "https://api.anthropic.com/v1/organizations/spend_limit_increase_requests?status[]=pending&limit=100" \
12011201 -H "x-api-key: $ANTHROPIC_API_KEY" \
1202 -H "anthropic-version: 2023-06-01"
1202 -H "anthropic-version: 2026-10-21"
12031203 ```
12041204 
12051205 ```bash CLI
from line 1318
13181318 curl -X POST "https://api.anthropic.com/v1/organizations/spend_limit_increase_requests/slir_01AbCdEfGhIjKlMnOpQrSt/approve" \
13191319 -H "content-type: application/json" \
13201320 -H "x-api-key: $ANTHROPIC_API_KEY" \
1321 -H "anthropic-version: 2023-06-01" \
1321 -H "anthropic-version: 2026-10-21" \
13221322 -d '{"amount": "75000", "suppress_notification": true}'
13231323 ```
13241324 
from line 1446
14461446 group_by[]=actor&\
14471447 actor_types[]=user_actor&\
14481448 limit=1000" \
1449 -H "anthropic-version: 2023-06-01" \
1449 -H "anthropic-version: 2026-10-21" \
14501450 -H "anthropic-beta: analytics-usage-cost-2026-08-24" \
14511451 -H "x-api-key: $ANTHROPIC_API_KEY"
14521452 ```
from line 1612
16121612 ```bash cURL
16131613 curl -g "https://api.anthropic.com/v1/organizations/spend_limits/effective?user_ids[]=user_01AbCdEfGh&user_ids[]=user_01JkLmNoPq&limit=100" \
16141614 -H "x-api-key: $ANTHROPIC_API_KEY" \
1615 -H "anthropic-version: 2023-06-01"
1615 -H "anthropic-version: 2026-10-21"
16161616 ```
16171617 
16181618 ```bash CLI
from line 1774
17741774 group_by[]=actor&\
17751775 actor_types[]=user_actor&\
17761776 limit=1000" \
1777 -H "anthropic-version: 2023-06-01" \
1777 -H "anthropic-version: 2026-10-21" \
17781778 -H "anthropic-beta: analytics-usage-cost-2026-08-24" \
17791779 -H "x-api-key: $ANTHROPIC_API_KEY"
17801780 ```
from line 1966
19661966 ```bash cURL
19671967 curl -g "https://api.anthropic.com/v1/organizations/spend_limits/effective?user_ids[]=user_01AbCdEfGh&period[]=monthly" \
19681968 -H "x-api-key: $ANTHROPIC_API_KEY" \
1969 -H "anthropic-version: 2023-06-01"
1969 -H "anthropic-version: 2026-10-21"
19701970 ```
19711971 
19721972 ```bash CLI
from line 2115
21152115 curl -X POST "https://api.anthropic.com/v1/organizations/spend_limits" \
21162116 -H "content-type: application/json" \
21172117 -H "x-api-key: $ANTHROPIC_API_KEY" \
2118 -H "anthropic-version: 2023-06-01" \
2118 -H "anthropic-version: 2026-10-21" \
21192119 -d '{
21202120 "scope": {"type": "user", "user_id": "user_01AbCdEfGh"},
21212121 "amount": "500000",
from line 2248
22482248 curl -X POST "https://api.anthropic.com/v1/organizations/rbac_groups/rbac_group_01UvWxYzAbCdEfGhIjKlMn/members" \
22492249 -H "content-type: application/json" \
22502250 -H "x-api-key: $ANTHROPIC_API_KEY" \
2251 -H "anthropic-version: 2023-06-01" \
2251 -H "anthropic-version: 2026-10-21" \
22522252 -d '{"user_id": "user_01AbCdEfGh"}'
22532253 ```
22542254 

manage-claude/usage-cost-analytics-api Changed · +18 / -12 lines

from line 56
5656 time_bucket_width=1d&\
5757 group_by[]=model&\
5858 limit=10" \
59 -H "anthropic-version: 2023-06-01" \
59 -H "anthropic-version: 2026-10-21" \
6060 -H "anthropic-beta: analytics-usage-cost-2026-08-24" \
6161 -H "x-api-key: $ANTHROPIC_API_KEY"
6262 ```
from line 278
278278 
279279The `actor` dimension is who a request is attributed to: a user, a service account, a federated cloud identity (an AWS or Google Cloud principal, for organizations that access Claude through their cloud platform), or, when none of those is behind the request, the API key itself. When you group by `actor`, each row’s `actor` is an object whose `type` says which kind it is. Usage that can’t be attributed to any identity has `actor: null`.
280280 
281[Personal keys and service account keys](https://platform.claude.com/docs/en/manage-claude/authentication#key-types) act as the user or service account they’re linked to, so their requests show that identity as the `actor` and the key in `api_key_id`. Legacy workspace keys aren’t linked to an identity, so the key appears as both the `actor` and the `api_key_id`. The exception is a key that Claude Code creates for a member at sign-in: it lives in the [Claude Code workspace](https://platform.claude.com/docs/en/manage-claude/workspaces#claude-code-workspace), and its usage is attributed to that member. Requests made without an API key, such as from the Claude Console, from Claude Code after a [sign-in without an API key](https://code.claude.com/docs/en/authentication#sign-in-without-an-api-key), or with a [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation) token, have `api_key_id: null`. After a sign-in without an API key, the `actor` is the member who signed in; a federated workload’s `actor` is its service account. To include usage with no API key in an `api_key_ids[]` filter, add an empty entry: `api_key_ids[]=`.
281[Personal keys and service account keys](https://platform.claude.com/docs/en/manage-claude/authentication#key-types) act as the user or service account they’re linked to, so their requests show that identity as the `actor` and the key in `api_key_id`. Legacy workspace keys aren’t linked to an identity, so the key appears as both the `actor` and the `api_key_id`.
282282 
283The `api_key_ids[]` and `actor_ids[]` filters answer different questions. `api_key_ids[]=apikey_...` matches every request the key authenticated, whoever it is attributed to. `actor_ids[]=apikey_...` matches only requests attributed to the key itself.
283Requests made without an API key, such as from the Claude Console or with a [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation) token, have `api_key_id: null`. With a Workload Identity Federation token, the `actor` is the service account the token acts as.
284284 
285Whichever way a member signs in to Claude Code with their Claude Console account, the `actor` is that member. If Claude Code creates an API key at sign-in, `api_key_id` is that key, which lives in the [Claude Code workspace](https://platform.claude.com/docs/en/manage-claude/workspaces#claude-code-workspace). After a [sign-in without an API key](https://code.claude.com/docs/en/authentication#sign-in-without-an-api-key), `api_key_id` is `null`.
286 
287Token usage from some [Claude Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) sessions is attributed to an Anthropic-managed service account (`svac_...`). For this usage, `api_key_id` is `null`. The account isn’t listed with the service accounts that you create. See [Find session usage across your organization](https://platform.claude.com/docs/en/managed-agents/session-observability#find-session-usage-across-your-organization).
288 
289The `api_key_ids[]` and `actor_ids[]` filters answer different questions. `api_key_ids[]=apikey_...` matches every request the key authenticated, whoever it is attributed to. `actor_ids[]=apikey_...` matches only requests attributed to the key itself. To include usage with no API key in an `api_key_ids[]` filter, add an empty entry: `api_key_ids[]=`.
290 
285291## Usage endpoint
286292 
287293`GET /v1/organizations/analytics/usage` returns token counts by type. `order_by` accepts `total_tokens` (the default), `output_tokens`, `uncached_input_tokens`, `requests`, or `time`.
from line 302
296302 workspace_ids[]=wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ&\
297303 api_key_ids[]=apikey_01Rj2N8SVvo6BePZj99NhmiT&\
298304 group_by[]=service_tier" \
299 -H "anthropic-version: 2023-06-01" \
305 -H "anthropic-version: 2026-10-21" \
300306 -H "anthropic-beta: analytics-usage-cost-2026-08-24" \
301307 -H "x-api-key: $ANTHROPIC_API_KEY"
302308 ```
from line 457
451457 group_by[]=actor&\
452458 order_by=requests&\
453459 limit=25" \
454 -H "anthropic-version: 2023-06-01" \
460 -H "anthropic-version: 2026-10-21" \
455461 -H "anthropic-beta: analytics-usage-cost-2026-08-24" \
456462 -H "x-api-key: $ANTHROPIC_API_KEY"
457463 ```
from line 616
610616 group_by[]=model&\
611617 group_by[]=cost_type&\
612618 group_by[]=token_type" \
613 -H "anthropic-version: 2023-06-01" \
619 -H "anthropic-version: 2026-10-21" \
614620 -H "anthropic-beta: analytics-usage-cost-2026-08-24" \
615621 -H "x-api-key: $ANTHROPIC_API_KEY"
616622 ```
from line 826
820826ending_at=2026-09-08T00:00:00Z&\
821827group_by[]=model&\
822828bucket_width=1d" \
823 -H "anthropic-version: 2023-06-01" \
829 -H "anthropic-version: 2026-10-21" \
824830 -H "x-api-key: $ANTHROPIC_API_KEY"
825831```
826832 
from line 840
834840 group_by[]=model&\
835841 time_bucket_width=1d&\
836842 limit=1000" \
837 -H "anthropic-version: 2023-06-01" \
843 -H "anthropic-version: 2026-10-21" \
838844 -H "anthropic-beta: analytics-usage-cost-2026-08-24" \
839845 -H "x-api-key: $ANTHROPIC_API_KEY"
840846 ```
from line 1002
9961002 group_by[]=cost_type&\
9971003 group_by[]=token_type&\
9981004 limit=1000" \
999 -H "anthropic-version: 2023-06-01" \
1005 -H "anthropic-version: 2026-10-21" \
10001006 -H "anthropic-beta: analytics-usage-cost-2026-08-24" \
10011007 -H "x-api-key: $ANTHROPIC_API_KEY"
10021008 ```
from line 1269
12631269 starting_at=2026-09-01T00:00:00Z&\
12641270 ending_at=2026-10-01T00:00:00Z&\
12651271 limit=100" \
1266 -H "anthropic-version: 2023-06-01" \
1272 -H "anthropic-version: 2026-10-21" \
12671273 -H "x-api-key: $ANTHROPIC_API_KEY"
12681274 ```
12691275 
from line 1403
13971403 group_by[]=product&\
13981404 actor_types[]=user_actor&\
13991405 limit=100" \
1400 -H "anthropic-version: 2023-06-01" \
1406 -H "anthropic-version: 2026-10-21" \
14011407 -H "anthropic-beta: analytics-usage-cost-2026-08-24" \
14021408 -H "x-api-key: $ANTHROPIC_API_KEY"
14031409 ```

manage-claude/usage-cost-api Changed · +11 / -11 lines

from line 90
9090starting_at=2025-01-08T00:00:00Z&\
9191ending_at=2025-01-15T00:00:00Z&\
9292bucket_width=1d" \
93 -H "anthropic-version: 2023-06-01" \
93 -H "anthropic-version: 2026-10-21" \
9494 -H "x-api-key: $ANTHROPIC_ADMIN_KEY"
9595```
9696 
from line 127
127127ending_at=2025-01-08T00:00:00Z&\
128128group_by[]=model&\
129129bucket_width=1d" \
130 -H "anthropic-version: 2023-06-01" \
130 -H "anthropic-version: 2026-10-21" \
131131 -H "x-api-key: $ANTHROPIC_ADMIN_KEY"
132132```
133133 
from line 141
141141service_tiers[]=batch&\
142142context_window[]=0-200k&\
143143bucket_width=1h" \
144 -H "anthropic-version: 2023-06-01" \
144 -H "anthropic-version: 2026-10-21" \
145145 -H "x-api-key: $ANTHROPIC_ADMIN_KEY"
146146```
147147 
from line 156
156156workspace_ids[]=wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ&\
157157workspace_ids[]=wrkspc_01XYZ789ABC123DEF456MNO&\
158158bucket_width=1d" \
159 -H "anthropic-version: 2023-06-01" \
159 -H "anthropic-version: 2026-10-21" \
160160 -H "x-api-key: $ANTHROPIC_ADMIN_KEY"
161161```
162162 
from line 177
177177group_by[]=inference_geo&\
178178group_by[]=model&\
179179bucket_width=1d" \
180 -H "anthropic-version: 2023-06-01" \
180 -H "anthropic-version: 2026-10-21" \
181181 -H "x-api-key: $ANTHROPIC_ADMIN_KEY"
182182```
183183 
from line 190
190190inference_geos[]=us&\
191191group_by[]=model&\
192192bucket_width=1d" \
193 -H "anthropic-version: 2023-06-01" \
193 -H "anthropic-version: 2026-10-21" \
194194 -H "x-api-key: $ANTHROPIC_ADMIN_KEY"
195195```
196196 
from line 209
209209group_by[]=speed&\
210210group_by[]=model&\
211211bucket_width=1d" \
212 -H "anthropic-version: 2023-06-01" \
212 -H "anthropic-version: 2026-10-21" \
213213 -H "x-api-key: $ANTHROPIC_ADMIN_KEY"
214214```
215215 
from line 222
222222speeds[]=fast&\
223223group_by[]=model&\
224224bucket_width=1d" \
225 -H "anthropic-version: 2023-06-01" \
225 -H "anthropic-version: 2026-10-21" \
226226 -H "x-api-key: $ANTHROPIC_ADMIN_KEY"
227227```
228228 
from line 259
259259ending_at=2025-01-31T00:00:00Z&\
260260group_by[]=workspace_id&\
261261group_by[]=description" \
262 -H "anthropic-version: 2023-06-01" \
262 -H "anthropic-version: 2026-10-21" \
263263 -H "x-api-key: $ANTHROPIC_ADMIN_KEY"
264264```
265265 
from line 277
277277starting_at=2025-01-01T00:00:00Z&\
278278ending_at=2025-01-31T00:00:00Z&\
279279limit=7" \
280 -H "anthropic-version: 2023-06-01" \
280 -H "anthropic-version: 2026-10-21" \
281281 -H "x-api-key: $ANTHROPIC_ADMIN_KEY"
282282 
283283# Response includes: "has_more": true, "next_page": "page_xyz..."
from line 288
288288ending_at=2025-01-31T00:00:00Z&\
289289limit=7&\
290290page=page_xyz..." \
291 -H "anthropic-version: 2023-06-01" \
291 -H "anthropic-version: 2026-10-21" \
292292 -H "x-api-key: $ANTHROPIC_ADMIN_KEY"
293293```
294294 

manage-claude/user-management Changed · +22 / -28 lines

from line 16
1616For Claude Console (Claude Platform) organizations, see the [Admin API guide for Claude Console](https://platform.claude.com/docs/en/manage-claude/admin-api).
1717 
1818<Note>
19 Group and custom-role requests don’t require the `anthropic-beta: ce-user-management-2026-07-13` [beta header](https://platform.claude.com/docs/en/api/beta-headers). Requests that still send it are accepted and behave identically.
19 Group and custom-role requests don’t require the `anthropic-beta: ce-user-management-2026-07-13` [beta header](https://platform.claude.com/docs/en/api/beta-headers). Requests that send it are accepted and behave identically.
2020</Note>
2121 
2222## Which endpoints can your organization use?
from line 65
6565 ```bash cURL
6666 curl "https://api.anthropic.com/v1/organizations/users?limit=20" \
6767 -H "x-api-key: $ANTHROPIC_API_KEY" \
68 -H "anthropic-version: 2023-06-01"
68 -H "anthropic-version: 2026-10-21"
6969 ```
7070 
7171 ```bash CLI
from line 230
230230 ```bash cURL
231231 curl "https://api.anthropic.com/v1/organizations/[email protected]" \
232232 -H "x-api-key: $ANTHROPIC_API_KEY" \
233 -H "anthropic-version: 2023-06-01"
233 -H "anthropic-version: 2026-10-21"
234234 ```
235235 
236236 ```bash CLI
from line 331
331331 ```bash cURL
332332 curl "https://api.anthropic.com/v1/organizations/users/user_01AbCdEfGhIjKlMnOpQrSt" \
333333 -H "x-api-key: $ANTHROPIC_API_KEY" \
334 -H "anthropic-version: 2023-06-01"
334 -H "anthropic-version: 2026-10-21"
335335 ```
336336 
337337 ```bash CLI
from line 426
426426 curl -X POST "https://api.anthropic.com/v1/organizations/users/user_01AbCdEfGhIjKlMnOpQrSt" \
427427 -H "content-type: application/json" \
428428 -H "x-api-key: $ANTHROPIC_API_KEY" \
429 -H "anthropic-version: 2023-06-01" \
429 -H "anthropic-version: 2026-10-21" \
430430 -d '{"role": "managed"}'
431431 ```
432432 
from line 542
542542 ```bash cURL
543543 curl -X DELETE "https://api.anthropic.com/v1/organizations/users/user_01AbCdEfGhIjKlMnOpQrSt" \
544544 -H "x-api-key: $ANTHROPIC_API_KEY" \
545 -H "anthropic-version: 2023-06-01"
545 -H "anthropic-version: 2026-10-21"
546546 ```
547547 
548548 ```bash CLI
from line 637
637637 curl -X POST "https://api.anthropic.com/v1/organizations/invites" \
638638 -H "content-type: application/json" \
639639 -H "x-api-key: $ANTHROPIC_API_KEY" \
640 -H "anthropic-version: 2023-06-01" \
640 -H "anthropic-version: 2026-10-21" \
641641 -d '{
642642 "email": "[email protected]",
643643 "role": "managed",
from line 797
797797 ```bash cURL
798798 curl "https://api.anthropic.com/v1/organizations/invites?limit=20" \
799799 -H "x-api-key: $ANTHROPIC_API_KEY" \
800 -H "anthropic-version: 2023-06-01"
800 -H "anthropic-version: 2026-10-21"
801801 ```
802802 
803803 ```bash CLI
from line 898
898898 ```bash cURL
899899 curl "https://api.anthropic.com/v1/organizations/invites/invite_01QrStUvWxYzAbCdEfGhIj" \
900900 -H "x-api-key: $ANTHROPIC_API_KEY" \
901 -H "anthropic-version: 2023-06-01"
901 -H "anthropic-version: 2026-10-21"
902902 ```
903903 
904904 ```bash CLI
from line 992
992992 ```bash cURL
993993 curl -X DELETE "https://api.anthropic.com/v1/organizations/invites/invite_01QrStUvWxYzAbCdEfGhIj" \
994994 -H "x-api-key: $ANTHROPIC_API_KEY" \
995 -H "anthropic-version: 2023-06-01"
995 -H "anthropic-version: 2026-10-21"
996996 ```
997997 
998998 ```bash CLI
from line 1079
10791079 ```bash cURL
10801080 curl "https://api.anthropic.com/v1/organizations/rbac_groups?limit=20" \
10811081 -H "x-api-key: $ANTHROPIC_API_KEY" \
1082 -H "anthropic-version: 2023-06-01"
1082 -H "anthropic-version: 2026-10-21"
10831083 ```
10841084 
10851085 ```bash CLI
from line 1179
11791179 "name": "Engineering",
11801180 "source_type": "direct",
11811181 "role_ids": ["rbac_role_01CdEfGhIjKlMnOpQrStUv"],
1182 "roles": ["rbac_role_01CdEfGhIjKlMnOpQrStUv"],
11831182 "created_at": "2026-03-18T10:01:42Z",
11841183 "updated_at": "2026-05-02T08:55:09Z"
11851184 }
from line 1198
11991198 ```bash cURL
12001199 curl "https://api.anthropic.com/v1/organizations/rbac_groups/rbac_group_01UvWxYzAbCdEfGhIjKlMn" \
12011200 -H "x-api-key: $ANTHROPIC_API_KEY" \
1202 -H "anthropic-version: 2023-06-01"
1201 -H "anthropic-version: 2026-10-21"
12031202 ```
12041203 
12051204 ```bash CLI
from line 1299
13001299 curl -X POST "https://api.anthropic.com/v1/organizations/rbac_groups" \
13011300 -H "content-type: application/json" \
13021301 -H "x-api-key: $ANTHROPIC_API_KEY" \
1303 -H "anthropic-version: 2023-06-01" \
1302 -H "anthropic-version: 2026-10-21" \
13041303 -d '{"name": "Engineering"}'
13051304 ```
13061305 
from line 1395
13961395 "name": "Engineering",
13971396 "source_type": "direct",
13981397 "role_ids": [],
1399 "roles": [],
14001398 "created_at": "2026-07-09T18:00:00Z",
14011399 "updated_at": "2026-07-09T18:00:00Z"
14021400}
from line 1411
14131411 curl -X POST "https://api.anthropic.com/v1/organizations/rbac_groups/rbac_group_01UvWxYzAbCdEfGhIjKlMn" \
14141412 -H "content-type: application/json" \
14151413 -H "x-api-key: $ANTHROPIC_API_KEY" \
1416 -H "anthropic-version: 2023-06-01" \
1414 -H "anthropic-version: 2026-10-21" \
14171415 -d '{"name": "Platform Engineering"}'
14181416 ```
14191417 
from line 1524
15261524 ```bash cURL
15271525 curl -X DELETE "https://api.anthropic.com/v1/organizations/rbac_groups/rbac_group_01UvWxYzAbCdEfGhIjKlMn" \
15281526 -H "x-api-key: $ANTHROPIC_API_KEY" \
1529 -H "anthropic-version: 2023-06-01"
1527 -H "anthropic-version: 2026-10-21"
15301528 ```
15311529 
15321530 ```bash CLI
from line 1619
16211619 ```bash cURL
16221620 curl "https://api.anthropic.com/v1/organizations/rbac_groups/rbac_group_01UvWxYzAbCdEfGhIjKlMn/members?limit=100" \
16231621 -H "x-api-key: $ANTHROPIC_API_KEY" \
1624 -H "anthropic-version: 2023-06-01"
1622 -H "anthropic-version: 2026-10-21"
16251623 ```
16261624 
16271625 ```bash CLI
from line 1735
17371735 {
17381736 "type": "rbac_group_member",
17391737 "rbac_group_id": "rbac_group_01UvWxYzAbCdEfGhIjKlMn",
1740 "group_id": "rbac_group_01UvWxYzAbCdEfGhIjKlMn",
17411738 "user_id": "user_01AbCdEfGhIjKlMnOpQrSt",
17421739 "email": "[email protected]",
17431740 "created_at": "2026-04-07T12:30:00Z"
from line 1756
17591756 curl -X POST "https://api.anthropic.com/v1/organizations/rbac_groups/rbac_group_01UvWxYzAbCdEfGhIjKlMn/members" \
17601757 -H "content-type: application/json" \
17611758 -H "x-api-key: $ANTHROPIC_API_KEY" \
1762 -H "anthropic-version: 2023-06-01" \
1759 -H "anthropic-version: 2026-10-21" \
17631760 -d '{"user_id": "user_01AbCdEfGhIjKlMnOpQrSt"}'
17641761 ```
17651762 
from line 1866
18691866{
18701867 "type": "rbac_group_member",
18711868 "rbac_group_id": "rbac_group_01UvWxYzAbCdEfGhIjKlMn",
1872 "group_id": "rbac_group_01UvWxYzAbCdEfGhIjKlMn",
18731869 "user_id": "user_01AbCdEfGhIjKlMnOpQrSt",
18741870 "email": "[email protected]",
18751871 "created_at": "2026-07-09T18:00:00Z"
from line 1882
18861882 ```bash cURL
18871883 curl -X DELETE "https://api.anthropic.com/v1/organizations/rbac_groups/rbac_group_01UvWxYzAbCdEfGhIjKlMn/members/user_01AbCdEfGhIjKlMnOpQrSt" \
18881884 -H "x-api-key: $ANTHROPIC_API_KEY" \
1889 -H "anthropic-version: 2023-06-01"
1885 -H "anthropic-version: 2026-10-21"
18901886 ```
18911887 
18921888 ```bash CLI
from line 1983
19871983```json
19881984{
19891985 "rbac_group_id": "rbac_group_01UvWxYzAbCdEfGhIjKlMn",
1990 "group_id": "rbac_group_01UvWxYzAbCdEfGhIjKlMn",
19911986 "user_id": "user_01AbCdEfGhIjKlMnOpQrSt",
19921987 "type": "rbac_group_member_deleted"
19931988}
from line 2004
20092004 ```bash cURL
20102005 curl "https://api.anthropic.com/v1/organizations/rbac_roles?limit=20" \
20112006 -H "x-api-key: $ANTHROPIC_API_KEY" \
2012 -H "anthropic-version: 2023-06-01"
2007 -H "anthropic-version: 2026-10-21"
20132008 ```
20142009 
20152010 ```bash CLI
from line 2102
21072102 "type": "rbac_role",
21082103 "id": "rbac_role_01CdEfGhIjKlMnOpQrStUv",
21092104 "display_name": "Engineering base",
2110 "name": "Engineering base",
21112105 "created_at": "2026-03-18T10:01:42Z",
21122106 "updated_at": "2026-05-02T08:55:09Z"
21132107 }
from line 2121
21272121 ```bash cURL
21282122 curl "https://api.anthropic.com/v1/organizations/rbac_roles/rbac_role_01CdEfGhIjKlMnOpQrStUv" \
21292123 -H "x-api-key: $ANTHROPIC_API_KEY" \
2130 -H "anthropic-version: 2023-06-01"
2124 -H "anthropic-version: 2026-10-21"
21312125 ```
21322126 
21332127 ```bash CLI
from line 2214
22202214 ```bash cURL
22212215 curl "https://api.anthropic.com/v1/organizations/rbac_roles/rbac_role_01CdEfGhIjKlMnOpQrStUv/permissions?limit=20" \
22222216 -H "x-api-key: $ANTHROPIC_API_KEY" \
2223 -H "anthropic-version: 2023-06-01"
2217 -H "anthropic-version: 2026-10-21"
22242218 ```
22252219 
22262220 ```bash CLI
from line 2360
23662360 ```bash cURL
23672361 curl "https://api.anthropic.com/v1/organizations/[email protected]" \
23682362 -H "x-api-key: $ANTHROPIC_API_KEY" \
2369 -H "anthropic-version: 2023-06-01"
2363 -H "anthropic-version: 2026-10-21"
23702364 ```
23712365 
23722366 ```bash CLI

manage-claude/user-profiles Changed · +10 / -10 lines

### Attribute requests on Claude Models on Google Cloud (Google managed) and Amazon Bedrock ### Attribute requests on Amazon Bedrock and Claude Models on Google Cloud (Google managed)

from line 38
3838* A [Microsoft Foundry](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry) deployment [hosted on Anthropic](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options), not one hosted on Azure. You don’t need an organization on the Claude API or Claude Platform on AWS. Use your Foundry endpoint, with the same base URL and authentication that you use for inference.
3939* An organization on [Claude Models on Google Cloud (Anthropic managed)](https://platform.claude.com/docs/en/build-with-claude/claude-models-on-google-cloud/anthropic-managed), where you can create, retrieve, list, and update profiles. Use the latest version of the [SDK client for Claude Models on Google Cloud (Anthropic managed)](https://platform.claude.com/docs/en/build-with-claude/claude-models-on-google-cloud/anthropic-managed#install-an-sdk), or call the [organization-level base URL](https://platform.claude.com/docs/en/build-with-claude/claude-models-on-google-cloud/anthropic-managed#making-requests) directly, with Google Cloud credentials instead of an API key.
4040 
41Amazon Bedrock and Claude Models on Google Cloud (Google managed) don’t have the `/v1/user_profiles` endpoints. If your inference runs there, create your profiles in an organization on the Claude API or Claude Platform on AWS. On Amazon Bedrock, profiles work only with [Claude in Amazon Bedrock](https://platform.claude.com/docs/en/build-with-claude/claude-in-amazon-bedrock). See [Attribute requests on Amazon Bedrock and Claude Models on Google Cloud (Google managed)](https://platform.claude.com/docs/en/manage-claude/user-profiles#attribute-requests-on-amazon-bedrock-and-google-cloud).
41Claude Models on Google Cloud (Google managed) and Amazon Bedrock don’t have the `/v1/user_profiles` endpoints. If your inference runs there, create your profiles in an organization on the Claude API or Claude Platform on AWS. On Amazon Bedrock, profiles work only with [Claude in Amazon Bedrock](https://platform.claude.com/docs/en/build-with-claude/claude-in-amazon-bedrock). See [Attribute requests on Claude Models on Google Cloud (Google managed) and Amazon Bedrock](https://platform.claude.com/docs/en/manage-claude/user-profiles#attribute-requests-on-amazon-bedrock-and-google-cloud).
4242 
4343Keep the traffic you send for your end customers in one organization and your own internal usage in another. Profiles belong to an organization, not a workspace, so separate workspaces in one organization aren’t enough. Only the organization for end-customer traffic needs user profiles. To create another organization on the Claude API, see the “How to create a new organization” section of [Creating and managing Workspaces in the Claude Console](https://support.claude.com/en/articles/9796807) in the Claude Help Center.
4444 
from line 54
5454 ```bash cURL
5555 curl https://api.anthropic.com/v1/user_profiles \
5656 -H "x-api-key: $ANTHROPIC_API_KEY" \
57 -H "anthropic-version: 2023-06-01" \
57 -H "anthropic-version: 2026-10-21" \
5858 -H "content-type: application/json" \
5959 -d '{
6060 "name": "Acme Analytics, Inc.",
from line 232
232232 ```bash cURL
233233 curl https://api.anthropic.com/v1/messages \
234234 -H "x-api-key: $ANTHROPIC_API_KEY" \
235 -H "anthropic-version: 2023-06-01" \
235 -H "anthropic-version: 2026-10-21" \
236236 -H "anthropic-user-profile-id: $PROFILE_ID" \
237237 -H "content-type: application/json" \
238238 -d '{
from line 363
363363 
364364Message Batches is the exception: creating a batch checks only the ID’s format. If a well-formed ID doesn’t belong to the organization that sends the batch, the batch is still created, and each request in it then fails with an `errored` result that contains the same `invalid_request_error`.
365365 
366### Attribute requests on Amazon Bedrock and Claude Models on Google Cloud (Google managed)
366### Attribute requests on Claude Models on Google Cloud (Google managed) and Amazon Bedrock
367367 
368A profile ID of either access type also works on [Claude in Amazon Bedrock](https://platform.claude.com/docs/en/build-with-claude/claude-in-amazon-bedrock) and on Claude Models on Google Cloud (Google managed). It doesn’t work with the [earlier Amazon Bedrock integration](https://platform.claude.com/docs/en/build-with-claude/claude-on-amazon-bedrock-legacy) that you call with `InvokeModel` or `Converse`. You use your Anthropic organization’s credentials only to create and manage profiles. Inference stays on your existing AWS or Google Cloud credentials.
368A profile ID of either access type also works on Claude Models on Google Cloud (Google managed) and on [Claude in Amazon Bedrock](https://platform.claude.com/docs/en/build-with-claude/claude-in-amazon-bedrock). It doesn’t work with the [earlier Amazon Bedrock integration](https://platform.claude.com/docs/en/build-with-claude/claude-on-amazon-bedrock-legacy) that you call with `InvokeModel` or `Converse`. You use your Anthropic organization’s credentials only to create and manage profiles. Inference stays on your existing AWS or Google Cloud credentials.
369369 
370370| Platform | Create profiles | Send the profile ID in |
371371| ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------- |
from line 395
395395 
396396Programs that apply to a profile apply to an account’s requests only after the account is linked and the portal shows it as **Linked**. Those programs include the ones an end customer’s organization is approved for after the end customer [links the profile to that organization](https://platform.claude.com/docs/en/manage-claude/user-profiles-verification-portal) and, for Cyber Verification Program access levels, turns them on for the profile in the portal.
397397 
398Claude in Amazon Bedrock and Claude Models on Google Cloud (Google managed) check the format of the ID but don’t look the profile up. They reject a malformed ID with a `400`. They accept any well-formed ID, so a successful response doesn’t confirm that the ID matches a profile. A request with no ID goes through unattributed, and if it triggers an enforcement action, the action applies to your whole organization.
398Claude Models on Google Cloud (Google managed) and Claude in Amazon Bedrock check the format of the ID but don’t look the profile up. They reject a malformed ID with a `400`. They accept any well-formed ID, so a successful response doesn’t confirm that the ID matches a profile. A request with no ID goes through unattributed, and if it triggers an enforcement action, the action applies to your whole organization.
399399 
400400### Identify individual users within a company
401401 
from line 466
466466 ```bash cURL
467467 curl "https://api.anthropic.com/v1/user_profiles/$PROFILE_ID" \
468468 -H "x-api-key: $ANTHROPIC_API_KEY" \
469 -H "anthropic-version: 2023-06-01" \
469 -H "anthropic-version: 2026-10-21" \
470470 -H "content-type: application/json" \
471471 -d '{
472472 "external_user_details": {"account_status": "suspended"},
from line 598
598598 ```bash cURL
599599 curl -X DELETE "https://api.anthropic.com/v1/user_profiles/$PROFILE_ID" \
600600 -H "x-api-key: $ANTHROPIC_API_KEY" \
601 -H "anthropic-version: 2023-06-01"
601 -H "anthropic-version: 2026-10-21"
602602 ```
603603 
604604 ```bash CLI
from line 673
673673 
674674The response repeats the ID with `"type": "user_profile_deleted"`. If a delete returns a server error, retry it. A `404` on the retry means the first delete went through.
675675 
676After a delete, the profile endpoints return a `404` for that ID. For up to about 10 minutes, inference requests that carry the deleted ID can still succeed. After that, the platforms that check the ID on every request reject the request with a `400`. Claude in Amazon Bedrock and Claude Models on Google Cloud (Google managed) don’t look profiles up, so they still accept it.
676After a delete, the profile endpoints return a `404` for that ID. For up to about 10 minutes, inference requests that carry the deleted ID can still succeed. After that, the platforms that check the ID on every request reject the request with a `400`. Claude Models on Google Cloud (Google managed) and Claude in Amazon Bedrock don’t look profiles up, so they still accept it.
677677 
678678## Next steps
679679 

manage-claude/wif-admin-api Changed · +10 / -10 lines

from line 75
7575 ```bash cURL
7676 curl --fail-with-body -sS "https://api.anthropic.com/v1/organizations/service_accounts" \
7777 -H "authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
78 -H "anthropic-version: 2023-06-01"
78 -H "anthropic-version: 2026-10-21"
7979 ```
8080 
8181 ```bash CLI
from line 167
167167 ```bash cURL
168168 curl --fail-with-body -sS "https://api.anthropic.com/v1/organizations/service_accounts" \
169169 -H "authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
170 -H "anthropic-version: 2023-06-01" \
170 -H "anthropic-version: 2026-10-21" \
171171 -H "content-type: application/json" \
172172 -d '{
173173 "name": "inference-worker",
from line 285
285285 ```bash cURL
286286 curl --fail-with-body -sS "https://api.anthropic.com/v1/organizations/service_accounts?limit=20" \
287287 -H "authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
288 -H "anthropic-version: 2023-06-01"
288 -H "anthropic-version: 2026-10-21"
289289 ```
290290 
291291 ```bash CLI
from line 382
382382 ```bash cURL
383383 curl --fail-with-body -sS -X POST "https://api.anthropic.com/v1/organizations/service_accounts/svac_01ABCDEFabcdef0123456789XY/archive" \
384384 -H "authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
385 -H "anthropic-version: 2023-06-01"
385 -H "anthropic-version: 2026-10-21"
386386 ```
387387 
388388 ```bash CLI
from line 502
502502 ```bash cURL
503503 curl --fail-with-body -sS "https://api.anthropic.com/v1/organizations/federation_issuers" \
504504 -H "authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
505 -H "anthropic-version: 2023-06-01" \
505 -H "anthropic-version: 2026-10-21" \
506506 -H "content-type: application/json" \
507507 -d '{
508508 "name": "github-actions",
from line 637
637637 ```bash cURL
638638 curl --fail-with-body -sS "https://api.anthropic.com/v1/organizations/federation_issuers?limit=20" \
639639 -H "authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
640 -H "anthropic-version: 2023-06-01"
640 -H "anthropic-version: 2026-10-21"
641641 ```
642642 
643643 ```bash CLI
from line 732
732732 ```bash cURL
733733 curl --fail-with-body -sS -X POST "https://api.anthropic.com/v1/organizations/federation_issuers/fdis_01ABCDEFabcdef0123456789XY/archive" \
734734 -H "authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
735 -H "anthropic-version: 2023-06-01"
735 -H "anthropic-version: 2026-10-21"
736736 ```
737737 
738738 ```bash CLI
from line 834
834834 ```bash cURL
835835 curl --fail-with-body -sS "https://api.anthropic.com/v1/organizations/federation_rules" \
836836 -H "authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
837 -H "anthropic-version: 2023-06-01" \
837 -H "anthropic-version: 2026-10-21" \
838838 -H "content-type: application/json" \
839839 -d '{
840840 "name": "gha-deploy",
from line 1047
10471047 ```bash cURL
10481048 curl --fail-with-body -sS "https://api.anthropic.com/v1/organizations/federation_rules?issuer_id=fdis_01ABCDEFabcdef0123456789XY" \
10491049 -H "authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
1050 -H "anthropic-version: 2023-06-01"
1050 -H "anthropic-version: 2026-10-21"
10511051 ```
10521052 
10531053 ```bash CLI
from line 1154
11541154 ```bash cURL
11551155 curl --fail-with-body -sS -X POST "https://api.anthropic.com/v1/organizations/federation_rules/fdrl_01ABCDEFabcdef0123456789XY/archive" \
11561156 -H "authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
1157 -H "anthropic-version: 2023-06-01"
1157 -H "anthropic-version: 2026-10-21"
11581158 ```
11591159 
11601160 ```bash CLI

manage-claude/wif-providers/aws Changed · +4 / -4 lines

from line 126
126126 
127127 curl https://api.anthropic.com/v1/messages \
128128 -H "authorization: Bearer $ACCESS_TOKEN" \
129 -H "anthropic-version: 2023-06-01" \
129 -H "anthropic-version: 2026-10-21" \
130130 -H "content-type: application/json" \
131131 -d '{
132132 "model": "claude-opus-5-5",
from line 289
289289 getStsToken := option.IdentityTokenFunc(func(ctx context.Context) (string, error) {
290290 out, err := stsClient.GetWebIdentityToken(ctx, &sts.GetWebIdentityTokenInput{
291291 Audience: []string{"https://api.anthropic.com"},
292 SigningAlgorithm: "RS256",
292 SigningAlgorithm: aws.String("RS256"),
293293 DurationSeconds: aws.Int32(900),
294294 })
295295 if err != nil {
from line 430
430430 
431431 sts = Aws::STS::Client.new(region: "us-east-1")
432432 client = Anthropic::Client.new(
433 credentials: Anthropic::WorkloadIdentityCredentials.new(
433 credentials: Anthropic::Credentials::WorkloadIdentity.new(
434434 identity_token_provider: -> {
435435 sts.get_web_identity_token(
436436 audience: ["https://api.anthropic.com"],
from line 634
634634 
635635 curl https://api.anthropic.com/v1/messages \
636636 -H "authorization: Bearer $ACCESS_TOKEN" \
637 -H "anthropic-version: 2023-06-01" \
637 -H "anthropic-version: 2026-10-21" \
638638 -H "content-type: application/json" \
639639 -d '{
640640 "model": "claude-opus-5-5",

manage-claude/wif-providers/azure Changed · +4 / -4 lines

from line 187
187187 # 3. Call the Claude API with the bearer token.
188188 curl https://api.anthropic.com/v1/messages \
189189 -H "authorization: Bearer $ACCESS_TOKEN" \
190 -H "anthropic-version: 2023-06-01" \
190 -H "anthropic-version: 2026-10-21" \
191191 -H "content-type: application/json" \
192192 -d '{
193193 "model": "claude-opus-5-5",
from line 594
594594 JSON.parse(response).fetch("access_token")
595595 end
596596 
597 credentials = Anthropic::WorkloadIdentityCredentials.new(
597 credentials = Anthropic::Credentials::WorkloadIdentity.new(
598598 identity_token_provider: -> { fetch_entra_token },
599599 federation_rule_id: ENV.fetch("ANTHROPIC_FEDERATION_RULE_ID"),
600600 organization_id: ENV.fetch("ANTHROPIC_ORGANIZATION_ID"),
from line 827
827827 # 3. Call the Claude API.
828828 curl -sS https://api.anthropic.com/v1/messages \
829829 -H "authorization: Bearer $ACCESS_TOKEN" \
830 -H "anthropic-version: 2023-06-01" \
830 -H "anthropic-version: 2026-10-21" \
831831 -H "content-type: application/json" \
832832 -d '{
833833 "model": "claude-opus-5-5",
from line 1221
12211221 end
12221222 
12231223 client = Anthropic::Client.new(
1224 credentials: Anthropic::WorkloadIdentityCredentials.new(
1224 credentials: Anthropic::Credentials::WorkloadIdentity.new(
12251225 identity_token_provider: -> { fetch_entra_token_via_federation },
12261226 federation_rule_id: ENV.fetch("ANTHROPIC_FEDERATION_RULE_ID"),
12271227 organization_id: ENV.fetch("ANTHROPIC_ORGANIZATION_ID"),

manage-claude/workspaces Changed · +9 / -9 lines

from line 153
153153 ```bash cURL
154154 curl -X POST "https://api.anthropic.com/v1/organizations/workspaces" \
155155 -H "x-api-key: $ANTHROPIC_API_KEY" \
156 -H "anthropic-version: 2023-06-01" \
156 -H "anthropic-version: 2026-10-21" \
157157 -H "content-type: application/json" \
158158 -d '{"name": "Production"}'
159159 ```
from line 249
249249 ```bash cURL
250250 curl "https://api.anthropic.com/v1/organizations/workspaces?limit=10&include_archived=false" \
251251 -H "x-api-key: $ANTHROPIC_API_KEY" \
252 -H "anthropic-version: 2023-06-01"
252 -H "anthropic-version: 2026-10-21"
253253 ```
254254 
255255 ```bash CLI
from line 358
358358 ```bash cURL
359359 curl -X POST "https://api.anthropic.com/v1/organizations/workspaces/wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ/archive" \
360360 -H "x-api-key: $ANTHROPIC_API_KEY" \
361 -H "anthropic-version: 2023-06-01"
361 -H "anthropic-version: 2026-10-21"
362362 ```
363363 
364364 ```bash CLI
from line 451
451451 ```bash cURL
452452 curl -X POST "https://api.anthropic.com/v1/organizations/workspaces/wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ/members" \
453453 -H "x-api-key: $ANTHROPIC_API_KEY" \
454 -H "anthropic-version: 2023-06-01" \
454 -H "anthropic-version: 2026-10-21" \
455455 -H "content-type: application/json" \
456456 -d '{
457457 "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu",
from line 587
587587 ```bash cURL
588588 curl -X POST "https://api.anthropic.com/v1/organizations/workspaces/wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ/members/user_01WxYzAbCdEfGhJkMnPqRsTu" \
589589 -H "x-api-key: $ANTHROPIC_API_KEY" \
590 -H "anthropic-version: 2023-06-01" \
590 -H "anthropic-version: 2026-10-21" \
591591 -H "content-type: application/json" \
592592 -d '{"workspace_role": "workspace_admin"}'
593593 ```
from line 720
720720 ```bash cURL
721721 curl -X DELETE "https://api.anthropic.com/v1/organizations/workspaces/wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ/members/user_01WxYzAbCdEfGhJkMnPqRsTu" \
722722 -H "x-api-key: $ANTHROPIC_API_KEY" \
723 -H "anthropic-version: 2023-06-01"
723 -H "anthropic-version: 2026-10-21"
724724 ```
725725 
726726 ```bash CLI
from line 842
842842To look up your organization’s workspace IDs, call the [List Workspaces](https://platform.claude.com/docs/en/api/organization/workspaces/list) endpoint (pass `include_default=true` to include the Default Workspace) or find them on the [Workspaces](https://platform.claude.com/settings/workspaces) page in the Claude Console.
843843 
844844<Note>
845 [Prompt caches](https://platform.claude.com/docs/en/build-with-claude/prompt-caching) are also isolated by workspace on the Claude API, [Claude Platform on AWS](https://platform.claude.com/docs/en/build-with-claude/claude-platform-on-aws), and [Microsoft Foundry](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry). On Amazon Bedrock and Claude Models on Google Cloud (Google managed), prompt caches are isolated by organization.
845 [Prompt caches](https://platform.claude.com/docs/en/build-with-claude/prompt-caching) are also isolated by workspace on the Claude API, [Claude Platform on AWS](https://platform.claude.com/docs/en/build-with-claude/claude-platform-on-aws), and [Microsoft Foundry](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry). On Claude Models on Google Cloud (Google managed) and Amazon Bedrock, prompt caches are isolated by organization.
846846</Note>
847847 
848848## Identify the workspace behind an API response
from line 865
865865 # -i prints the response headers, including anthropic-workspace-id, before the body
866866 curl -sS -i https://api.anthropic.com/v1/messages \
867867 -H "x-api-key: $ANTHROPIC_API_KEY" \
868 -H "anthropic-version: 2023-06-01" \
868 -H "anthropic-version: 2026-10-21" \
869869 -H "content-type: application/json" \
870870 -d '{
871871 "model": "claude-opus-5-5",
from line 1045
10451045 workspace_ids[]=wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ&\
10461046 group_by[]=workspace_id&\
10471047 time_bucket_width=1d" \
1048 -H "anthropic-version: 2023-06-01" \
1048 -H "anthropic-version: 2026-10-21" \
10491049 -H "anthropic-beta: analytics-usage-cost-2026-08-24" \
10501050 -H "x-api-key: $ANTHROPIC_API_KEY"
10511051 ```

managed-agents/agent-setup Changed · +7 / -7 lines

from line 60
6060 ```bash cURL
6161 curl -fsSL https://api.anthropic.com/v1/agents \
6262 -H "x-api-key: $ANTHROPIC_API_KEY" \
63 -H "anthropic-version: 2023-06-01" \
63 -H "anthropic-version: 2026-10-21" \
6464 -H "anthropic-beta: managed-agents-2026-04-01" \
6565 -H "content-type: application/json" \
6666 -d '{
from line 223
223223 ```bash cURL
224224 curl -fsSL https://api.anthropic.com/v1/agents \
225225 -H "x-api-key: $ANTHROPIC_API_KEY" \
226 -H "anthropic-version: 2023-06-01" \
226 -H "anthropic-version: 2026-10-21" \
227227 -H "anthropic-beta: managed-agents-2026-04-01" \
228228 -H "content-type: application/json" \
229229 -d '{
from line 361
361361 ```bash cURL
362362 curl -fsSL "https://api.anthropic.com/v1/agents/$AGENT_ID" \
363363 -H "x-api-key: $ANTHROPIC_API_KEY" \
364 -H "anthropic-version: 2023-06-01" \
364 -H "anthropic-version: 2026-10-21" \
365365 -H "anthropic-beta: managed-agents-2026-04-01" \
366366 -H "content-type: application/json" \
367367 -d '{
from line 469
469469 ```bash cURL
470470 curl -fsSL "https://api.anthropic.com/v1/agents/$AGENT_ID" \
471471 -H "x-api-key: $ANTHROPIC_API_KEY" \
472 -H "anthropic-version: 2023-06-01" \
472 -H "anthropic-version: 2026-10-21" \
473473 -H "anthropic-beta: managed-agents-2026-04-01" \
474474 -H "content-type: application/json" \
475475 -d '{
from line 574
574574 ```bash cURL
575575 curl -fsSL "https://api.anthropic.com/v1/agents/$AGENT_ID" \
576576 -H "x-api-key: $ANTHROPIC_API_KEY" \
577 -H "anthropic-version: 2023-06-01" \
577 -H "anthropic-version: 2026-10-21" \
578578 -H "anthropic-beta: managed-agents-2026-04-01" \
579579 -H "content-type: application/json" \
580580 -d '{
from line 724
724724 ```bash cURL
725725 curl -fsSL "https://api.anthropic.com/v1/agents/$AGENT_ID/versions" \
726726 -H "x-api-key: $ANTHROPIC_API_KEY" \
727 -H "anthropic-version: 2023-06-01" \
727 -H "anthropic-version: 2026-10-21" \
728728 -H "anthropic-beta: managed-agents-2026-04-01"
729729 ```
730730 
from line 789
789789 ```bash cURL
790790 curl -fsSL -X POST "https://api.anthropic.com/v1/agents/$AGENT_ID/archive" \
791791 -H "x-api-key: $ANTHROPIC_API_KEY" \
792 -H "anthropic-version: 2023-06-01" \
792 -H "anthropic-version: 2026-10-21" \
793793 -H "anthropic-beta: managed-agents-2026-04-01"
794794 ```
795795 

managed-agents/budgets Changed · +3 / -3 lines

from line 45
4545 ```bash cURL
4646 curl -sS --fail-with-body https://api.anthropic.com/v1/sessions \
4747 -H "x-api-key: $ANTHROPIC_API_KEY" \
48 -H "anthropic-version: 2023-06-01" \
48 -H "anthropic-version: 2026-10-21" \
4949 -H "anthropic-beta: managed-agents-2026-04-01" \
5050 -H "content-type: application/json" \
5151 -d '{
from line 223
223223 ```bash cURL
224224 curl -sS --fail-with-body "https://api.anthropic.com/v1/sessions/$SESSION_ID" \
225225 -H "x-api-key: $ANTHROPIC_API_KEY" \
226 -H "anthropic-version: 2023-06-01" \
226 -H "anthropic-version: 2026-10-21" \
227227 -H "anthropic-beta: managed-agents-2026-04-01" \
228228 -H "content-type: application/json" \
229229 -d '{
from line 330
330330 ```bash cURL
331331 curl -sS --fail-with-body "https://api.anthropic.com/v1/sessions/$SESSION_ID" \
332332 -H "x-api-key: $ANTHROPIC_API_KEY" \
333 -H "anthropic-version: 2023-06-01" \
333 -H "anthropic-version: 2026-10-21" \
334334 -H "anthropic-beta: managed-agents-2026-04-01" \
335335 -H "content-type: application/json" \
336336 -d '{"budget": null}'
Feedback