title: Rules url: https://platform.claude.com/docs/en/api/beta/organization/federation/rules
Rules
Create Federation Rule
POST /v1/organizations/federation_rules
Requires an OAuth access token with the org:admin scope, from ant auth login --scope org:admin or a workload identity federation rule; Admin API keys are not accepted. See Manage WIF with the Admin API.
Create a federation rule owned by your organization.
The referenced issuer and the target service account must already exist
in the same organization; invalid references are rejected with a 400
error. The workspace reference is validated. Membership is not checked
at rule creation: token exchange resolves a single enabled workspace per
call and is rejected unless the target service account is a member of
that workspace (it is implicitly a member of the default workspace).
Rules on well-known shared issuers (GitHub Actions, GitLab, Buildkite,
Terraform Cloud, Google) must constrain tenant identity via an
identity-bearing claim, a tenant-pinning subject prefix (such as
repo:YOUR_ORG/...), or a CEL condition referencing one of those
identity claims (e.g. claims.repository_owner). OAuth callers may only
manage rules whose oauth_scope is workspace:developer or
workspace:inference; other scopes require a Console session.
Headers
-
"anthropic-beta": optional array of AnthropicBetaOptional header to specify the beta version(s) you want to use.
-
string -
"message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 43 more-
"message-batches-2024-09-24" -
"prompt-caching-2024-07-31" -
"computer-use-2024-10-22" -
"computer-use-2025-01-24" -
"pdfs-2024-09-25" -
"token-counting-2024-11-01" -
"token-efficient-tools-2025-02-19" -
"output-128k-2025-02-19" -
"files-api-2025-04-14" -
"mcp-client-2025-04-04" -
"mcp-client-2025-11-20" -
"dev-full-thinking-2025-05-14" -
"interleaved-thinking-2025-05-14" -
"code-execution-2025-05-22" -
"extended-cache-ttl-2025-04-11" -
"context-1m-2025-08-07" -
"context-management-2025-06-27" -
"model-context-window-exceeded-2025-08-26" -
"skills-2025-10-02" -
"fast-mode-2026-02-01" -
"output-300k-2026-03-24" -
"user-profiles-2026-03-24" -
"user-profiles-2026-08-18" -
"user-profiles-2026-09-04" -
"advisor-tool-2026-03-01" -
"managed-agents-2026-04-01" -
"cache-diagnosis-2026-04-07" -
"dreaming-2026-04-21" -
"thinking-token-count-2026-05-13" -
"server-side-fallback-2026-06-01" -
"server-side-fallback-2026-07-01" -
"fallback-credit-2026-06-01" -
"fallback-credit-2026-07-01" -
"agent-memory-2026-07-22" -
"mid-conversation-tool-changes-2026-07-01" -
"compact-2026-01-12" -
"computer-use-2025-11-24" -
"mcp-tunnels-2026-06-22" -
"structured-outputs-2025-11-13" -
"task-budgets-2026-03-13" -
"thinking-display-updates-2026-08-18" -
"ce-user-management-2026-07-13" -
"mid-conversation-output-config-2026-07-01" -
"thinking-binding-controls-2026-08-01" -
"mid-conversation-system-clear-at-2026-08-21" -
"compact-2026-09-04"
-
-
Body parameters
-
issuer_id: stringTagged ID of the federation issuer.
-
match: BetaFederationRuleMatchConditions the verified JWT must satisfy for this rule to apply. At least one of
subject_prefix(other than a wildcard-only value like*),claims, orconditionis required;audiencealone is not sufficient.-
audience: optional string or nullExact match against the
audclaim (any element if array). When omitted, the JWT'saudmust still equal Anthropic's expected audience for the issuer; setting this field overrides that default.maxLength: 1024
-
claims: optional map[string] or nullExact-match
{claim: value}pairs against top-level claims. Only string-valued claims can be matched; useconditionfor non-string claims. -
condition: optional string or nullCEL expression over claims for logic the structural fields can't express. Must evaluate to a boolean and may reference only the
claimsvariable; a constant-true expression (such astrue) is rejected with 400.maxLength: 4096
-
subject_prefix: optional string or nullMatch the verified JWT
subclaim. Exact match unless the value ends with*, in which case it is a prefix match. Example:repo:my-org/my-repo:ref:refs/heads/main.maxLength: 1024
-
-
name: stringSlug identifier (lowercase, digits, hyphens). Unique within the organization; a duplicate name returns 409.
maxLength: 255, minLength: 1
-
oauth_scope: stringSpace-separated OAuth scopes. OAuth callers may only set
workspace:developerorworkspace:inference; other scopes (such asorg:admin) require a Console session.minLength: 1
-
target: BetaServiceAccountTargetIdentity that tokens minted via this rule act as. Currently always a
service_accounttarget.-
type: "service_account" -
service_account_id: stringTagged ID of the service account to mint tokens for.
-
service_account_name: optional string or nullService account's display name at read time. Ignored on writes.
-
-
applies_to_all_workspaces: optional booleanWhen true, enable this rule for every workspace in the org (including workspaces created later).
-
attributes: optional map[string] or nullCEL expressions
{name: expr}extracting named values from claims. Not yet supported; any non-empty value is rejected with 400. -
description: optional string or nullOptional free-text description.
maxLength: 2000
-
token_lifetime_seconds: optional numberLifetime in seconds for access tokens minted via this rule (60-86400). Defaults to 3600 (1h). Minted tokens are capped at
max(60, min(this value, 2 × remaining assertion validity))seconds.maximum: 86400, minimum: 60
-
workspace_id: optional string or nullTagged ID of the workspace to enable this rule for. Required unless
applies_to_all_workspacesis true. Additional workspaces can be added via the/federation_rules/{federation_rule_id}/workspacessub-resource.
Returns
-
BetaFederationRule objectAuthorization rule binding an external OIDC identity to Anthropic.
Evaluates the match conditions and mints an OAuth access token for the resolved target, scoped to a single workspace where the rule is enabled (chosen by the caller at exchange time when the rule is enabled for more than one). For rules enabled via
workspace_idsorapplies_to_all_workspaces, the target service account must be a member of that workspace (it is implicitly a member of the default workspace); rules carrying only the legacyworkspace_idbinding do not enforce this.-
type: "federation_rule"default: federation_rule
-
id: stringTagged ID of the federation rule.
-
applies_to_all_workspaces: booleanWhen true, this rule is enabled for every workspace in the org (including ones created after the rule).
workspace_idsis ignored at exchange time. -
archived_at: string or nullIf set, this rule is archived and rejects token exchange.
format: date-time
-
archived_by_actor_id: string or nullTagged ID (
user_/svac_) of the actor that archived this rule. -
attributes: map[string] or nullCEL expressions extracting named values from claims. Not yet supported; always null.
-
created_at: stringWhen this rule was created.
format: date-time
-
created_by_actor_id: string or nullTagged ID (
user_/svac_) of the actor that created this rule. -
description: string or nullOptional free-text description.
-
issuer_id: stringTagged ID of the issuer whose tokens this rule accepts.
-
issuer_name: string or nullIssuer's display name at read time.
-
match: BetaFederationRuleMatchConditions the verified JWT must satisfy for this rule to apply. All populated matcher fields must pass.
-
audience: optional string or nullExact match against the
audclaim (any element if array). When omitted, the JWT'saudmust still equal Anthropic's expected audience for the issuer; setting this field overrides that default.maxLength: 1024
-
claims: optional map[string] or nullExact-match
{claim: value}pairs against top-level claims. Only string-valued claims can be matched; useconditionfor non-string claims. -
condition: optional string or nullCEL expression over claims for logic the structural fields can't express. Must evaluate to a boolean and may reference only the
claimsvariable; a constant-true expression (such astrue) is rejected with 400.maxLength: 4096
-
subject_prefix: optional string or nullMatch the verified JWT
subclaim. Exact match unless the value ends with*, in which case it is a prefix match. Example:repo:my-org/my-repo:ref:refs/heads/main.maxLength: 1024
-
-
name: stringAdmin-chosen slug identifier.
-
oauth_scope: stringSpace-separated OAuth scopes granted on the minted token.
-
target: BetaServiceAccountTargetIdentity that tokens minted via this rule act as. Currently always a
service_accounttarget.-
type: "service_account" -
service_account_id: stringTagged ID of the service account to mint tokens for.
-
service_account_name: optional string or nullService account's display name at read time. Ignored on writes.
-
-
token_lifetime_seconds: numberLifetime in seconds of access tokens minted via this rule. Minted tokens are capped at
max(60, min(this value, 2 × remaining assertion validity))seconds. -
updated_at: stringWhen this rule was last updated.
format: date-time
-
updated_by_actor_id: string or nullTagged ID (
user_/svac_) of the actor that last updated this rule. -
workspace_id: string or nullLegacy single-workspace binding. Prefer
workspace_idsand the/federation_rules/{federation_rule_id}/workspacessub-resource for managing workspace enablement. -
workspace_ids: array of stringTagged IDs of the workspaces this rule is enabled for. May be empty for older rules that only carry the legacy
workspace_idbinding. Ignored at exchange time whenapplies_to_all_workspacesis true (the list may still be non-empty).
-
Example
curl https://api.anthropic.com/v1/organizations/federation_rules \
-H 'Content-Type: application/json' \
-H 'anthropic-version: 2023-06-01' \
-H "X-Api-Key: $ANTHROPIC_API_KEY" \
-d '{
"issuer_id": "issuer_id",
"match": {},
"name": "x",
"oauth_scope": "x",
"target": {
"service_account_id": "svac_01SDCCSbTxrXDpWc1phhtcfK",
"type": "service_account"
}
}'Response (200)
{
"id": "fdrl_01SDCCSbTxrXDpWc1phhtcfK",
"applies_to_all_workspaces": true,
"archived_at": "2019-12-27T18:11:19.117Z",
"archived_by_actor_id": "archived_by_actor_id",
"attributes": {
"foo": "string"
},
"created_at": "2024-10-30T23:58:27.427722Z",
"created_by_actor_id": "created_by_actor_id",
"description": "description",
"issuer_id": "issuer_id",
"issuer_name": "issuer_name",
"match": {
"audience": "audience",
"claims": {
"foo": "string"
},
"condition": "condition",
"subject_prefix": "subject_prefix"
},
"name": "prod-deploy-pipeline",
"oauth_scope": "oauth_scope",
"target": {
"service_account_id": "svac_01SDCCSbTxrXDpWc1phhtcfK",
"type": "service_account",
"service_account_name": "service_account_name"
},
"token_lifetime_seconds": 0,
"type": "federation_rule",
"updated_at": "2024-10-30T23:58:27.427722Z",
"updated_by_actor_id": "updated_by_actor_id",
"workspace_id": "workspace_id",
"workspace_ids": [
"string"
]
}List Federation Rules
GET /v1/organizations/federation_rules
Requires an OAuth access token with the org:admin scope, from ant auth login --scope org:admin or a workload identity federation rule; Admin API keys are not accepted. See Manage WIF with the Admin API.
List federation rules in your organization.
Optionally filter by issuer with issuer_id. Archived rules are excluded
unless include_archived=true.
Query parameters
-
include_archived: optional booleanInclude archived resources. Defaults to false.
default: false
-
issuer_id: optional stringFilter to rules referencing this federation issuer.
-
limit: optional numberNumber of results per page.
default: 20, maximum: 100, minimum: 1
-
page: optional stringOpaque cursor from a previous response's
next_page.
Headers
-
"anthropic-beta": optional array of AnthropicBetaOptional header to specify the beta version(s) you want to use.
-
string -
"message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 43 more-
"message-batches-2024-09-24" -
"prompt-caching-2024-07-31" -
"computer-use-2024-10-22" -
"computer-use-2025-01-24" -
"pdfs-2024-09-25" -
"token-counting-2024-11-01" -
"token-efficient-tools-2025-02-19" -
"output-128k-2025-02-19" -
"files-api-2025-04-14" -
"mcp-client-2025-04-04" -
"mcp-client-2025-11-20" -
"dev-full-thinking-2025-05-14" -
"interleaved-thinking-2025-05-14" -
"code-execution-2025-05-22" -
"extended-cache-ttl-2025-04-11" -
"context-1m-2025-08-07" -
"context-management-2025-06-27" -
"model-context-window-exceeded-2025-08-26" -
"skills-2025-10-02" -
"fast-mode-2026-02-01" -
"output-300k-2026-03-24" -
"user-profiles-2026-03-24" -
"user-profiles-2026-08-18" -
"user-profiles-2026-09-04" -
"advisor-tool-2026-03-01" -
"managed-agents-2026-04-01" -
"cache-diagnosis-2026-04-07" -
"dreaming-2026-04-21" -
"thinking-token-count-2026-05-13" -
"server-side-fallback-2026-06-01" -
"server-side-fallback-2026-07-01" -
"fallback-credit-2026-06-01" -
"fallback-credit-2026-07-01" -
"agent-memory-2026-07-22" -
"mid-conversation-tool-changes-2026-07-01" -
"compact-2026-01-12" -
"computer-use-2025-11-24" -
"mcp-tunnels-2026-06-22" -
"structured-outputs-2025-11-13" -
"task-budgets-2026-03-13" -
"thinking-display-updates-2026-08-18" -
"ce-user-management-2026-07-13" -
"mid-conversation-output-config-2026-07-01" -
"thinking-binding-controls-2026-08-01" -
"mid-conversation-system-clear-at-2026-08-21" -
"compact-2026-09-04"
-
-
Returns
-
data: array of BetaFederationRule-
type: "federation_rule"default: federation_rule
-
id: stringTagged ID of the federation rule.
-
applies_to_all_workspaces: booleanWhen true, this rule is enabled for every workspace in the org (including ones created after the rule).
workspace_idsis ignored at exchange time. -
archived_at: string or nullIf set, this rule is archived and rejects token exchange.
format: date-time
-
archived_by_actor_id: string or nullTagged ID (
user_/svac_) of the actor that archived this rule. -
attributes: map[string] or nullCEL expressions extracting named values from claims. Not yet supported; always null.
-
created_at: stringWhen this rule was created.
format: date-time
-
created_by_actor_id: string or nullTagged ID (
user_/svac_) of the actor that created this rule. -
description: string or nullOptional free-text description.
-
issuer_id: stringTagged ID of the issuer whose tokens this rule accepts.
-
issuer_name: string or nullIssuer's display name at read time.
-
match: BetaFederationRuleMatchConditions the verified JWT must satisfy for this rule to apply. All populated matcher fields must pass.
-
audience: optional string or nullExact match against the
audclaim (any element if array). When omitted, the JWT'saudmust still equal Anthropic's expected audience for the issuer; setting this field overrides that default.maxLength: 1024
-
claims: optional map[string] or nullExact-match
{claim: value}pairs against top-level claims. Only string-valued claims can be matched; useconditionfor non-string claims. -
condition: optional string or nullCEL expression over claims for logic the structural fields can't express. Must evaluate to a boolean and may reference only the
claimsvariable; a constant-true expression (such astrue) is rejected with 400.maxLength: 4096
-
subject_prefix: optional string or nullMatch the verified JWT
subclaim. Exact match unless the value ends with*, in which case it is a prefix match. Example:repo:my-org/my-repo:ref:refs/heads/main.maxLength: 1024
-
-
name: stringAdmin-chosen slug identifier.
-
oauth_scope: stringSpace-separated OAuth scopes granted on the minted token.
-
target: BetaServiceAccountTargetIdentity that tokens minted via this rule act as. Currently always a
service_accounttarget.-
type: "service_account" -
service_account_id: stringTagged ID of the service account to mint tokens for.
-
service_account_name: optional string or nullService account's display name at read time. Ignored on writes.
-
-
token_lifetime_seconds: numberLifetime in seconds of access tokens minted via this rule. Minted tokens are capped at
max(60, min(this value, 2 × remaining assertion validity))seconds. -
updated_at: stringWhen this rule was last updated.
format: date-time
-
updated_by_actor_id: string or nullTagged ID (
user_/svac_) of the actor that last updated this rule. -
workspace_id: string or nullLegacy single-workspace binding. Prefer
workspace_idsand the/federation_rules/{federation_rule_id}/workspacessub-resource for managing workspace enablement. -
workspace_ids: array of stringTagged IDs of the workspaces this rule is enabled for. May be empty for older rules that only carry the legacy
workspace_idbinding. Ignored at exchange time whenapplies_to_all_workspacesis true (the list may still be non-empty).
-
-
next_page: string or nullOpaque cursor for the next page, or null if no more results.
Example
curl https://api.anthropic.com/v1/organizations/federation_rules \
-H 'anthropic-version: 2023-06-01' \
-H "X-Api-Key: $ANTHROPIC_API_KEY"Response (200)
{
"data": [
{
"id": "fdrl_01SDCCSbTxrXDpWc1phhtcfK",
"applies_to_all_workspaces": true,
"archived_at": "2019-12-27T18:11:19.117Z",
"archived_by_actor_id": "archived_by_actor_id",
"attributes": {
"foo": "string"
},
"created_at": "2024-10-30T23:58:27.427722Z",
"created_by_actor_id": "created_by_actor_id",
"description": "description",
"issuer_id": "issuer_id",
"issuer_name": "issuer_name",
"match": {
"audience": "audience",
"claims": {
"foo": "string"
},
"condition": "condition",
"subject_prefix": "subject_prefix"
},
"name": "prod-deploy-pipeline",
"oauth_scope": "oauth_scope",
"target": {
"service_account_id": "svac_01SDCCSbTxrXDpWc1phhtcfK",
"type": "service_account",
"service_account_name": "service_account_name"
},
"token_lifetime_seconds": 0,
"type": "federation_rule",
"updated_at": "2024-10-30T23:58:27.427722Z",
"updated_by_actor_id": "updated_by_actor_id",
"workspace_id": "workspace_id",
"workspace_ids": [
"string"
]
}
],
"next_page": "next_page"
}Get Federation Rule
GET /v1/organizations/federation_rules/{federation_rule_id}
Requires an OAuth access token with the org:admin scope, from ant auth login --scope org:admin or a workload identity federation rule; Admin API keys are not accepted. See Manage WIF with the Admin API.
Retrieve a federation rule by its ID (fdrl_...).
Path parameters
-
federation_rule_id: stringID of the federation rule.
Headers
-
"anthropic-beta": optional array of AnthropicBetaOptional header to specify the beta version(s) you want to use.
-
string -
"message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 43 more-
"message-batches-2024-09-24" -
"prompt-caching-2024-07-31" -
"computer-use-2024-10-22" -
"computer-use-2025-01-24" -
"pdfs-2024-09-25" -
"token-counting-2024-11-01" -
"token-efficient-tools-2025-02-19" -
"output-128k-2025-02-19" -
"files-api-2025-04-14" -
"mcp-client-2025-04-04" -
"mcp-client-2025-11-20" -
"dev-full-thinking-2025-05-14" -
"interleaved-thinking-2025-05-14" -
"code-execution-2025-05-22" -
"extended-cache-ttl-2025-04-11" -
"context-1m-2025-08-07" -
"context-management-2025-06-27" -
"model-context-window-exceeded-2025-08-26" -
"skills-2025-10-02" -
"fast-mode-2026-02-01" -
"output-300k-2026-03-24" -
"user-profiles-2026-03-24" -
"user-profiles-2026-08-18" -
"user-profiles-2026-09-04" -
"advisor-tool-2026-03-01" -
"managed-agents-2026-04-01" -
"cache-diagnosis-2026-04-07" -
"dreaming-2026-04-21" -
"thinking-token-count-2026-05-13" -
"server-side-fallback-2026-06-01" -
"server-side-fallback-2026-07-01" -
"fallback-credit-2026-06-01" -
"fallback-credit-2026-07-01" -
"agent-memory-2026-07-22" -
"mid-conversation-tool-changes-2026-07-01" -
"compact-2026-01-12" -
"computer-use-2025-11-24" -
"mcp-tunnels-2026-06-22" -
"structured-outputs-2025-11-13" -
"task-budgets-2026-03-13" -
"thinking-display-updates-2026-08-18" -
"ce-user-management-2026-07-13" -
"mid-conversation-output-config-2026-07-01" -
"thinking-binding-controls-2026-08-01" -
"mid-conversation-system-clear-at-2026-08-21" -
"compact-2026-09-04"
-
-
Returns
-
BetaFederationRule objectAuthorization rule binding an external OIDC identity to Anthropic.
Evaluates the match conditions and mints an OAuth access token for the resolved target, scoped to a single workspace where the rule is enabled (chosen by the caller at exchange time when the rule is enabled for more than one). For rules enabled via
workspace_idsorapplies_to_all_workspaces, the target service account must be a member of that workspace (it is implicitly a member of the default workspace); rules carrying only the legacyworkspace_idbinding do not enforce this.-
type: "federation_rule"default: federation_rule
-
id: stringTagged ID of the federation rule.
-
applies_to_all_workspaces: booleanWhen true, this rule is enabled for every workspace in the org (including ones created after the rule).
workspace_idsis ignored at exchange time. -
archived_at: string or nullIf set, this rule is archived and rejects token exchange.
format: date-time
-
archived_by_actor_id: string or nullTagged ID (
user_/svac_) of the actor that archived this rule. -
attributes: map[string] or nullCEL expressions extracting named values from claims. Not yet supported; always null.
-
created_at: stringWhen this rule was created.
format: date-time
-
created_by_actor_id: string or nullTagged ID (
user_/svac_) of the actor that created this rule. -
description: string or nullOptional free-text description.
-
issuer_id: stringTagged ID of the issuer whose tokens this rule accepts.
-
issuer_name: string or nullIssuer's display name at read time.
-
match: BetaFederationRuleMatchConditions the verified JWT must satisfy for this rule to apply. All populated matcher fields must pass.
-
audience: optional string or nullExact match against the
audclaim (any element if array). When omitted, the JWT'saudmust still equal Anthropic's expected audience for the issuer; setting this field overrides that default.maxLength: 1024
-
claims: optional map[string] or nullExact-match
{claim: value}pairs against top-level claims. Only string-valued claims can be matched; useconditionfor non-string claims. -
condition: optional string or nullCEL expression over claims for logic the structural fields can't express. Must evaluate to a boolean and may reference only the
claimsvariable; a constant-true expression (such astrue) is rejected with 400.maxLength: 4096
-
subject_prefix: optional string or nullMatch the verified JWT
subclaim. Exact match unless the value ends with*, in which case it is a prefix match. Example:repo:my-org/my-repo:ref:refs/heads/main.maxLength: 1024
-
-
name: stringAdmin-chosen slug identifier.
-
oauth_scope: stringSpace-separated OAuth scopes granted on the minted token.
-
target: BetaServiceAccountTargetIdentity that tokens minted via this rule act as. Currently always a
service_accounttarget.-
type: "service_account" -
service_account_id: stringTagged ID of the service account to mint tokens for.
-
service_account_name: optional string or nullService account's display name at read time. Ignored on writes.
-
-
token_lifetime_seconds: numberLifetime in seconds of access tokens minted via this rule. Minted tokens are capped at
max(60, min(this value, 2 × remaining assertion validity))seconds. -
updated_at: stringWhen this rule was last updated.
format: date-time
-
updated_by_actor_id: string or nullTagged ID (
user_/svac_) of the actor that last updated this rule. -
workspace_id: string or nullLegacy single-workspace binding. Prefer
workspace_idsand the/federation_rules/{federation_rule_id}/workspacessub-resource for managing workspace enablement. -
workspace_ids: array of stringTagged IDs of the workspaces this rule is enabled for. May be empty for older rules that only carry the legacy
workspace_idbinding. Ignored at exchange time whenapplies_to_all_workspacesis true (the list may still be non-empty).
-
Example
curl https://api.anthropic.com/v1/organizations/federation_rules/$FEDERATION_RULE_ID \
-H 'anthropic-version: 2023-06-01' \
-H "X-Api-Key: $ANTHROPIC_API_KEY"Response (200)
{
"id": "fdrl_01SDCCSbTxrXDpWc1phhtcfK",
"applies_to_all_workspaces": true,
"archived_at": "2019-12-27T18:11:19.117Z",
"archived_by_actor_id": "archived_by_actor_id",
"attributes": {
"foo": "string"
},
"created_at": "2024-10-30T23:58:27.427722Z",
"created_by_actor_id": "created_by_actor_id",
"description": "description",
"issuer_id": "issuer_id",
"issuer_name": "issuer_name",
"match": {
"audience": "audience",
"claims": {
"foo": "string"
},
"condition": "condition",
"subject_prefix": "subject_prefix"
},
"name": "prod-deploy-pipeline",
"oauth_scope": "oauth_scope",
"target": {
"service_account_id": "svac_01SDCCSbTxrXDpWc1phhtcfK",
"type": "service_account",
"service_account_name": "service_account_name"
},
"token_lifetime_seconds": 0,
"type": "federation_rule",
"updated_at": "2024-10-30T23:58:27.427722Z",
"updated_by_actor_id": "updated_by_actor_id",
"workspace_id": "workspace_id",
"workspace_ids": [
"string"
]
}Update Federation Rule
POST /v1/organizations/federation_rules/{federation_rule_id}
Requires an OAuth access token with the org:admin scope, from ant auth login --scope org:admin or a workload identity federation rule; Admin API keys are not accepted. See Manage WIF with the Admin API.
Partially update a federation rule.
issuer_id is immutable. match and target are replaced as whole
objects when set. Referenced service accounts and workspaces must exist
in your organization; invalid references are rejected with a 400 error.
Archived rules cannot be updated; this returns 400. Create a new rule
instead. Rules on well-known shared issuers (GitHub Actions, GitLab,
Buildkite, Terraform Cloud, Google) must constrain tenant identity via
an identity-bearing claim, a tenant-pinning subject prefix (such as
repo:YOUR_ORG/...), or a CEL condition referencing one of those
identity claims (e.g. claims.repository_owner). On these issuers the
requirement is re-checked on every update; if an existing rule's stored
match does not yet constrain tenant identity, any update (even a rename
or description change) must also supply a conforming match in the same
request. OAuth callers may only manage rules whose oauth_scope is
workspace:developer or workspace:inference; other scopes require a
Console session.
Path parameters
-
federation_rule_id: stringID of the federation rule to update.
Headers
-
"anthropic-beta": optional array of AnthropicBetaOptional header to specify the beta version(s) you want to use.
-
string -
"message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 43 more-
"message-batches-2024-09-24" -
"prompt-caching-2024-07-31" -
"computer-use-2024-10-22" -
"computer-use-2025-01-24" -
"pdfs-2024-09-25" -
"token-counting-2024-11-01" -
"token-efficient-tools-2025-02-19" -
"output-128k-2025-02-19" -
"files-api-2025-04-14" -
"mcp-client-2025-04-04" -
"mcp-client-2025-11-20" -
"dev-full-thinking-2025-05-14" -
"interleaved-thinking-2025-05-14" -
"code-execution-2025-05-22" -
"extended-cache-ttl-2025-04-11" -
"context-1m-2025-08-07" -
"context-management-2025-06-27" -
"model-context-window-exceeded-2025-08-26" -
"skills-2025-10-02" -
"fast-mode-2026-02-01" -
"output-300k-2026-03-24" -
"user-profiles-2026-03-24" -
"user-profiles-2026-08-18" -
"user-profiles-2026-09-04" -
"advisor-tool-2026-03-01" -
"managed-agents-2026-04-01" -
"cache-diagnosis-2026-04-07" -
"dreaming-2026-04-21" -
"thinking-token-count-2026-05-13" -
"server-side-fallback-2026-06-01" -
"server-side-fallback-2026-07-01" -
"fallback-credit-2026-06-01" -
"fallback-credit-2026-07-01" -
"agent-memory-2026-07-22" -
"mid-conversation-tool-changes-2026-07-01" -
"compact-2026-01-12" -
"computer-use-2025-11-24" -
"mcp-tunnels-2026-06-22" -
"structured-outputs-2025-11-13" -
"task-budgets-2026-03-13" -
"thinking-display-updates-2026-08-18" -
"ce-user-management-2026-07-13" -
"mid-conversation-output-config-2026-07-01" -
"thinking-binding-controls-2026-08-01" -
"mid-conversation-system-clear-at-2026-08-21" -
"compact-2026-09-04"
-
-
Body parameters
-
applies_to_all_workspaces: optional boolean or nullWhen true, enables this rule for every workspace in the org (including workspaces created later). Setting
falseis rejected with 400 if no workspace would remain enabled; a rule with only a legacyworkspace_idbinding continues to mint. -
attributes: optional map[string] or nullReplaces the CEL expressions
{name: expr}extracting named values from claims. Send null to clear them. Not yet supported; any non-empty value is rejected with 400. -
description: optional string or nullReplaces the description. Omit to leave unchanged; send
nullto clear (the field is stored as an empty string).maxLength: 2000
-
match: optional BetaFederationRuleMatch or nullDoes the incoming JWT qualify?
All populated fields must pass; omitted fields are skipped. At least one of
subject_prefix(other than a wildcard-only value like*),claims, orconditionis required;audiencealone is not sufficient.-
audience: optional string or nullExact match against the
audclaim (any element if array). When omitted, the JWT'saudmust still equal Anthropic's expected audience for the issuer; setting this field overrides that default.maxLength: 1024
-
claims: optional map[string] or nullExact-match
{claim: value}pairs against top-level claims. Only string-valued claims can be matched; useconditionfor non-string claims. -
condition: optional string or nullCEL expression over claims for logic the structural fields can't express. Must evaluate to a boolean and may reference only the
claimsvariable; a constant-true expression (such astrue) is rejected with 400.maxLength: 4096
-
subject_prefix: optional string or nullMatch the verified JWT
subclaim. Exact match unless the value ends with*, in which case it is a prefix match. Example:repo:my-org/my-repo:ref:refs/heads/main.maxLength: 1024
-
-
name: optional string or nullReplaces the slug identifier (lowercase, digits, hyphens). Unique within the organization; a duplicate name returns 409.
maxLength: 255, minLength: 1
-
oauth_scope: optional string or nullReplaces the space-separated OAuth scopes granted on minted tokens. OAuth callers may only set
workspace:developerorworkspace:inference; other scopes (such asorg:admin) require a Console session.minLength: 1
-
target: optional BetaServiceAccountTarget or nullBind to a fixed service account by ID.
-
type: "service_account" -
service_account_id: stringTagged ID of the service account to mint tokens for.
-
service_account_name: optional string or nullService account's display name at read time. Ignored on writes.
-
-
token_lifetime_seconds: optional number or nullReplaces the lifetime in seconds for access tokens minted via this rule (60-86400). Minted tokens are capped at
max(60, min(this value, 2 × remaining assertion validity))seconds.maximum: 86400, minimum: 60
-
workspace_id: optional string or nullReplaces the existing single workspace enablement (the previous one is removed). Rejected with 400 if the rule is enabled for more than one workspace; use the
/federation_rules/{federation_rule_id}/workspacessub-resource instead.
Returns
-
BetaFederationRule objectAuthorization rule binding an external OIDC identity to Anthropic.
Evaluates the match conditions and mints an OAuth access token for the resolved target, scoped to a single workspace where the rule is enabled (chosen by the caller at exchange time when the rule is enabled for more than one). For rules enabled via
workspace_idsorapplies_to_all_workspaces, the target service account must be a member of that workspace (it is implicitly a member of the default workspace); rules carrying only the legacyworkspace_idbinding do not enforce this.-
type: "federation_rule"default: federation_rule
-
id: stringTagged ID of the federation rule.
-
applies_to_all_workspaces: booleanWhen true, this rule is enabled for every workspace in the org (including ones created after the rule).
workspace_idsis ignored at exchange time. -
archived_at: string or nullIf set, this rule is archived and rejects token exchange.
format: date-time
-
archived_by_actor_id: string or nullTagged ID (
user_/svac_) of the actor that archived this rule. -
attributes: map[string] or nullCEL expressions extracting named values from claims. Not yet supported; always null.
-
created_at: stringWhen this rule was created.
format: date-time
-
created_by_actor_id: string or nullTagged ID (
user_/svac_) of the actor that created this rule. -
description: string or nullOptional free-text description.
-
issuer_id: stringTagged ID of the issuer whose tokens this rule accepts.
-
issuer_name: string or nullIssuer's display name at read time.
-
match: BetaFederationRuleMatchConditions the verified JWT must satisfy for this rule to apply. All populated matcher fields must pass.
-
audience: optional string or nullExact match against the
audclaim (any element if array). When omitted, the JWT'saudmust still equal Anthropic's expected audience for the issuer; setting this field overrides that default.maxLength: 1024
-
claims: optional map[string] or nullExact-match
{claim: value}pairs against top-level claims. Only string-valued claims can be matched; useconditionfor non-string claims. -
condition: optional string or nullCEL expression over claims for logic the structural fields can't express. Must evaluate to a boolean and may reference only the
claimsvariable; a constant-true expression (such astrue) is rejected with 400.maxLength: 4096
-
subject_prefix: optional string or nullMatch the verified JWT
subclaim. Exact match unless the value ends with*, in which case it is a prefix match. Example:repo:my-org/my-repo:ref:refs/heads/main.maxLength: 1024
-
-
name: stringAdmin-chosen slug identifier.
-
oauth_scope: stringSpace-separated OAuth scopes granted on the minted token.
-
target: BetaServiceAccountTargetIdentity that tokens minted via this rule act as. Currently always a
service_accounttarget.-
type: "service_account" -
service_account_id: stringTagged ID of the service account to mint tokens for.
-
service_account_name: optional string or nullService account's display name at read time. Ignored on writes.
-
-
token_lifetime_seconds: numberLifetime in seconds of access tokens minted via this rule. Minted tokens are capped at
max(60, min(this value, 2 × remaining assertion validity))seconds. -
updated_at: stringWhen this rule was last updated.
format: date-time
-
updated_by_actor_id: string or nullTagged ID (
user_/svac_) of the actor that last updated this rule. -
workspace_id: string or nullLegacy single-workspace binding. Prefer
workspace_idsand the/federation_rules/{federation_rule_id}/workspacessub-resource for managing workspace enablement. -
workspace_ids: array of stringTagged IDs of the workspaces this rule is enabled for. May be empty for older rules that only carry the legacy
workspace_idbinding. Ignored at exchange time whenapplies_to_all_workspacesis true (the list may still be non-empty).
-
Example
curl https://api.anthropic.com/v1/organizations/federation_rules/$FEDERATION_RULE_ID \
-H 'Content-Type: application/json' \
-H 'anthropic-version: 2023-06-01' \
-H "X-Api-Key: $ANTHROPIC_API_KEY" \
-d '{}'Response (200)
{
"id": "fdrl_01SDCCSbTxrXDpWc1phhtcfK",
"applies_to_all_workspaces": true,
"archived_at": "2019-12-27T18:11:19.117Z",
"archived_by_actor_id": "archived_by_actor_id",
"attributes": {
"foo": "string"
},
"created_at": "2024-10-30T23:58:27.427722Z",
"created_by_actor_id": "created_by_actor_id",
"description": "description",
"issuer_id": "issuer_id",
"issuer_name": "issuer_name",
"match": {
"audience": "audience",
"claims": {
"foo": "string"
},
"condition": "condition",
"subject_prefix": "subject_prefix"
},
"name": "prod-deploy-pipeline",
"oauth_scope": "oauth_scope",
"target": {
"service_account_id": "svac_01SDCCSbTxrXDpWc1phhtcfK",
"type": "service_account",
"service_account_name": "service_account_name"
},
"token_lifetime_seconds": 0,
"type": "federation_rule",
"updated_at": "2024-10-30T23:58:27.427722Z",
"updated_by_actor_id": "updated_by_actor_id",
"workspace_id": "workspace_id",
"workspace_ids": [
"string"
]
}Archive Federation Rule
POST /v1/organizations/federation_rules/{federation_rule_id}/archive
Requires an OAuth access token with the org:admin scope, from ant auth login --scope org:admin or a workload identity federation rule; Admin API keys are not accepted. See Manage WIF with the Admin API.
Archive a federation rule.
Token exchange through this rule stops immediately. Idempotent;
re-archiving returns the rule with its original archived_at. Archiving
clears the rule's workspace targeting (workspace_id and
workspace_ids are emptied). Tokens already minted before archive
remain valid until they expire. OAuth callers may only manage rules
whose oauth_scope is workspace:developer or workspace:inference;
other scopes require a Console session.
Path parameters
-
federation_rule_id: stringID of the federation rule to archive.
Headers
-
"anthropic-beta": optional array of AnthropicBetaOptional header to specify the beta version(s) you want to use.
-
string -
"message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 43 more-
"message-batches-2024-09-24" -
"prompt-caching-2024-07-31" -
"computer-use-2024-10-22" -
"computer-use-2025-01-24" -
"pdfs-2024-09-25" -
"token-counting-2024-11-01" -
"token-efficient-tools-2025-02-19" -
"output-128k-2025-02-19" -
"files-api-2025-04-14" -
"mcp-client-2025-04-04" -
"mcp-client-2025-11-20" -
"dev-full-thinking-2025-05-14" -
"interleaved-thinking-2025-05-14" -
"code-execution-2025-05-22" -
"extended-cache-ttl-2025-04-11" -
"context-1m-2025-08-07" -
"context-management-2025-06-27" -
"model-context-window-exceeded-2025-08-26" -
"skills-2025-10-02" -
"fast-mode-2026-02-01" -
"output-300k-2026-03-24" -
"user-profiles-2026-03-24" -
"user-profiles-2026-08-18" -
"user-profiles-2026-09-04" -
"advisor-tool-2026-03-01" -
"managed-agents-2026-04-01" -
"cache-diagnosis-2026-04-07" -
"dreaming-2026-04-21" -
"thinking-token-count-2026-05-13" -
"server-side-fallback-2026-06-01" -
"server-side-fallback-2026-07-01" -
"fallback-credit-2026-06-01" -
"fallback-credit-2026-07-01" -
"agent-memory-2026-07-22" -
"mid-conversation-tool-changes-2026-07-01" -
"compact-2026-01-12" -
"computer-use-2025-11-24" -
"mcp-tunnels-2026-06-22" -
"structured-outputs-2025-11-13" -
"task-budgets-2026-03-13" -
"thinking-display-updates-2026-08-18" -
"ce-user-management-2026-07-13" -
"mid-conversation-output-config-2026-07-01" -
"thinking-binding-controls-2026-08-01" -
"mid-conversation-system-clear-at-2026-08-21" -
"compact-2026-09-04"
-
-
Returns
-
BetaFederationRule objectAuthorization rule binding an external OIDC identity to Anthropic.
Evaluates the match conditions and mints an OAuth access token for the resolved target, scoped to a single workspace where the rule is enabled (chosen by the caller at exchange time when the rule is enabled for more than one). For rules enabled via
workspace_idsorapplies_to_all_workspaces, the target service account must be a member of that workspace (it is implicitly a member of the default workspace); rules carrying only the legacyworkspace_idbinding do not enforce this.-
type: "federation_rule"default: federation_rule
-
id: stringTagged ID of the federation rule.
-
applies_to_all_workspaces: booleanWhen true, this rule is enabled for every workspace in the org (including ones created after the rule).
workspace_idsis ignored at exchange time. -
archived_at: string or nullIf set, this rule is archived and rejects token exchange.
format: date-time
-
archived_by_actor_id: string or nullTagged ID (
user_/svac_) of the actor that archived this rule. -
attributes: map[string] or nullCEL expressions extracting named values from claims. Not yet supported; always null.
-
created_at: stringWhen this rule was created.
format: date-time
-
created_by_actor_id: string or nullTagged ID (
user_/svac_) of the actor that created this rule. -
description: string or nullOptional free-text description.
-
issuer_id: stringTagged ID of the issuer whose tokens this rule accepts.
-
issuer_name: string or nullIssuer's display name at read time.
-
match: BetaFederationRuleMatchConditions the verified JWT must satisfy for this rule to apply. All populated matcher fields must pass.
-
audience: optional string or nullExact match against the
audclaim (any element if array). When omitted, the JWT'saudmust still equal Anthropic's expected audience for the issuer; setting this field overrides that default.maxLength: 1024
-
claims: optional map[string] or nullExact-match
{claim: value}pairs against top-level claims. Only string-valued claims can be matched; useconditionfor non-string claims. -
condition: optional string or nullCEL expression over claims for logic the structural fields can't express. Must evaluate to a boolean and may reference only the
claimsvariable; a constant-true expression (such astrue) is rejected with 400.maxLength: 4096
-
subject_prefix: optional string or nullMatch the verified JWT
subclaim. Exact match unless the value ends with*, in which case it is a prefix match. Example:repo:my-org/my-repo:ref:refs/heads/main.maxLength: 1024
-
-
name: stringAdmin-chosen slug identifier.
-
oauth_scope: stringSpace-separated OAuth scopes granted on the minted token.
-
target: BetaServiceAccountTargetIdentity that tokens minted via this rule act as. Currently always a
service_accounttarget.-
type: "service_account" -
service_account_id: stringTagged ID of the service account to mint tokens for.
-
service_account_name: optional string or nullService account's display name at read time. Ignored on writes.
-
-
token_lifetime_seconds: numberLifetime in seconds of access tokens minted via this rule. Minted tokens are capped at
max(60, min(this value, 2 × remaining assertion validity))seconds. -
updated_at: stringWhen this rule was last updated.
format: date-time
-
updated_by_actor_id: string or nullTagged ID (
user_/svac_) of the actor that last updated this rule. -
workspace_id: string or nullLegacy single-workspace binding. Prefer
workspace_idsand the/federation_rules/{federation_rule_id}/workspacessub-resource for managing workspace enablement. -
workspace_ids: array of stringTagged IDs of the workspaces this rule is enabled for. May be empty for older rules that only carry the legacy
workspace_idbinding. Ignored at exchange time whenapplies_to_all_workspacesis true (the list may still be non-empty).
-
Example
curl https://api.anthropic.com/v1/organizations/federation_rules/$FEDERATION_RULE_ID/archive \
-X POST \
-H 'anthropic-version: 2023-06-01' \
-H "X-Api-Key: $ANTHROPIC_API_KEY"Response (200)
{
"id": "fdrl_01SDCCSbTxrXDpWc1phhtcfK",
"applies_to_all_workspaces": true,
"archived_at": "2019-12-27T18:11:19.117Z",
"archived_by_actor_id": "archived_by_actor_id",
"attributes": {
"foo": "string"
},
"created_at": "2024-10-30T23:58:27.427722Z",
"created_by_actor_id": "created_by_actor_id",
"description": "description",
"issuer_id": "issuer_id",
"issuer_name": "issuer_name",
"match": {
"audience": "audience",
"claims": {
"foo": "string"
},
"condition": "condition",
"subject_prefix": "subject_prefix"
},
"name": "prod-deploy-pipeline",
"oauth_scope": "oauth_scope",
"target": {
"service_account_id": "svac_01SDCCSbTxrXDpWc1phhtcfK",
"type": "service_account",
"service_account_name": "service_account_name"
},
"token_lifetime_seconds": 0,
"type": "federation_rule",
"updated_at": "2024-10-30T23:58:27.427722Z",
"updated_by_actor_id": "updated_by_actor_id",
"workspace_id": "workspace_id",
"workspace_ids": [
"string"
]
}Domain types
Beta Federation Rule
-
BetaFederationRule objectAuthorization rule binding an external OIDC identity to Anthropic.
Evaluates the match conditions and mints an OAuth access token for the resolved target, scoped to a single workspace where the rule is enabled (chosen by the caller at exchange time when the rule is enabled for more than one). For rules enabled via
workspace_idsorapplies_to_all_workspaces, the target service account must be a member of that workspace (it is implicitly a member of the default workspace); rules carrying only the legacyworkspace_idbinding do not enforce this.-
type: "federation_rule"default: federation_rule
-
id: stringTagged ID of the federation rule.
-
applies_to_all_workspaces: booleanWhen true, this rule is enabled for every workspace in the org (including ones created after the rule).
workspace_idsis ignored at exchange time. -
archived_at: string or nullIf set, this rule is archived and rejects token exchange.
format: date-time
-
archived_by_actor_id: string or nullTagged ID (
user_/svac_) of the actor that archived this rule. -
attributes: map[string] or nullCEL expressions extracting named values from claims. Not yet supported; always null.
-
created_at: stringWhen this rule was created.
format: date-time
-
created_by_actor_id: string or nullTagged ID (
user_/svac_) of the actor that created this rule. -
description: string or nullOptional free-text description.
-
issuer_id: stringTagged ID of the issuer whose tokens this rule accepts.
-
issuer_name: string or nullIssuer's display name at read time.
-
match: BetaFederationRuleMatchConditions the verified JWT must satisfy for this rule to apply. All populated matcher fields must pass.
-
audience: optional string or nullExact match against the
audclaim (any element if array). When omitted, the JWT'saudmust still equal Anthropic's expected audience for the issuer; setting this field overrides that default.maxLength: 1024
-
claims: optional map[string] or nullExact-match
{claim: value}pairs against top-level claims. Only string-valued claims can be matched; useconditionfor non-string claims. -
condition: optional string or nullCEL expression over claims for logic the structural fields can't express. Must evaluate to a boolean and may reference only the
claimsvariable; a constant-true expression (such astrue) is rejected with 400.maxLength: 4096
-
subject_prefix: optional string or nullMatch the verified JWT
subclaim. Exact match unless the value ends with*, in which case it is a prefix match. Example:repo:my-org/my-repo:ref:refs/heads/main.maxLength: 1024
-
-
name: stringAdmin-chosen slug identifier.
-
oauth_scope: stringSpace-separated OAuth scopes granted on the minted token.
-
target: BetaServiceAccountTargetIdentity that tokens minted via this rule act as. Currently always a
service_accounttarget.-
type: "service_account" -
service_account_id: stringTagged ID of the service account to mint tokens for.
-
service_account_name: optional string or nullService account's display name at read time. Ignored on writes.
-
-
token_lifetime_seconds: numberLifetime in seconds of access tokens minted via this rule. Minted tokens are capped at
max(60, min(this value, 2 × remaining assertion validity))seconds. -
updated_at: stringWhen this rule was last updated.
format: date-time
-
updated_by_actor_id: string or nullTagged ID (
user_/svac_) of the actor that last updated this rule. -
workspace_id: string or nullLegacy single-workspace binding. Prefer
workspace_idsand the/federation_rules/{federation_rule_id}/workspacessub-resource for managing workspace enablement. -
workspace_ids: array of stringTagged IDs of the workspaces this rule is enabled for. May be empty for older rules that only carry the legacy
workspace_idbinding. Ignored at exchange time whenapplies_to_all_workspacesis true (the list may still be non-empty).
-
Beta Federation Rule Match
-
BetaFederationRuleMatch objectDoes the incoming JWT qualify?
All populated fields must pass; omitted fields are skipped. At least one of
subject_prefix(other than a wildcard-only value like*),claims, orconditionis required;audiencealone is not sufficient.-
audience: optional string or nullExact match against the
audclaim (any element if array). When omitted, the JWT'saudmust still equal Anthropic's expected audience for the issuer; setting this field overrides that default.maxLength: 1024
-
claims: optional map[string] or nullExact-match
{claim: value}pairs against top-level claims. Only string-valued claims can be matched; useconditionfor non-string claims. -
condition: optional string or nullCEL expression over claims for logic the structural fields can't express. Must evaluate to a boolean and may reference only the
claimsvariable; a constant-true expression (such astrue) is rejected with 400.maxLength: 4096
-
subject_prefix: optional string or nullMatch the verified JWT
subclaim. Exact match unless the value ends with*, in which case it is a prefix match. Example:repo:my-org/my-repo:ref:refs/heads/main.maxLength: 1024
-
Beta Federation Rule Workspace
-
BetaFederationRuleWorkspace object-
type: "federation_rule_workspace"default: federation_rule_workspace
-
created_at: stringWhen this workspace was enabled for the rule.
format: date-time
-
created_by_actor_id: string or nullTagged ID (
user_...orsvac_...) of the actor that enabled this workspace for the rule, if known. -
federation_rule_id: stringTagged ID of the federation rule.
-
workspace_id: stringTagged ID of the workspace this rule is enabled for.
-
workspace_name: string or nullWorkspace display name. Populated when listing; null in the enable response.
-
Beta Service Account Target
-
BetaServiceAccountTarget objectBind to a fixed service account by ID.
-
type: "service_account" -
service_account_id: stringTagged ID of the service account to mint tokens for.
-
service_account_name: optional string or nullService account's display name at read time. Ignored on writes.
-
Rules › Workspaces
Add Federation Rule Workspace
POST /v1/organizations/federation_rules/{federation_rule_id}/workspaces
Requires an OAuth access token with the org:admin scope, from ant auth login --scope org:admin or a workload identity federation rule; Admin API keys are not accepted. See Manage WIF with the Admin API.
Enable a federation rule for a workspace.
Idempotent; re-enabling returns the existing enablement. The rule and
workspace must both belong to your organization. Membership of the
rule's target service account in this workspace is not checked at
enablement: token exchange into this workspace is rejected unless the
target is a member (it is implicitly a member of the default workspace).
Archived rules are rejected with 400. OAuth callers may only manage rules
whose oauth_scope is workspace:developer or workspace:inference;
other scopes require a Console session.
Path parameters
-
federation_rule_id: stringID of the federation rule.
Headers
-
"anthropic-beta": optional array of AnthropicBetaOptional header to specify the beta version(s) you want to use.
-
string -
"message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 43 more-
"message-batches-2024-09-24" -
"prompt-caching-2024-07-31" -
"computer-use-2024-10-22" -
"computer-use-2025-01-24" -
"pdfs-2024-09-25" -
"token-counting-2024-11-01" -
"token-efficient-tools-2025-02-19" -
"output-128k-2025-02-19" -
"files-api-2025-04-14" -
"mcp-client-2025-04-04" -
"mcp-client-2025-11-20" -
"dev-full-thinking-2025-05-14" -
"interleaved-thinking-2025-05-14" -
"code-execution-2025-05-22" -
"extended-cache-ttl-2025-04-11" -
"context-1m-2025-08-07" -
"context-management-2025-06-27" -
"model-context-window-exceeded-2025-08-26" -
"skills-2025-10-02" -
"fast-mode-2026-02-01" -
"output-300k-2026-03-24" -
"user-profiles-2026-03-24" -
"user-profiles-2026-08-18" -
"user-profiles-2026-09-04" -
"advisor-tool-2026-03-01" -
"managed-agents-2026-04-01" -
"cache-diagnosis-2026-04-07" -
"dreaming-2026-04-21" -
"thinking-token-count-2026-05-13" -
"server-side-fallback-2026-06-01" -
"server-side-fallback-2026-07-01" -
"fallback-credit-2026-06-01" -
"fallback-credit-2026-07-01" -
"agent-memory-2026-07-22" -
"mid-conversation-tool-changes-2026-07-01" -
"compact-2026-01-12" -
"computer-use-2025-11-24" -
"mcp-tunnels-2026-06-22" -
"structured-outputs-2025-11-13" -
"task-budgets-2026-03-13" -
"thinking-display-updates-2026-08-18" -
"ce-user-management-2026-07-13" -
"mid-conversation-output-config-2026-07-01" -
"thinking-binding-controls-2026-08-01" -
"mid-conversation-system-clear-at-2026-08-21" -
"compact-2026-09-04"
-
-
Body parameters
-
workspace_id: stringTagged ID of the workspace to enable this rule for.
Returns
-
BetaFederationRuleWorkspace object-
type: "federation_rule_workspace"default: federation_rule_workspace
-
created_at: stringWhen this workspace was enabled for the rule.
format: date-time
-
created_by_actor_id: string or nullTagged ID (
user_...orsvac_...) of the actor that enabled this workspace for the rule, if known. -
federation_rule_id: stringTagged ID of the federation rule.
-
workspace_id: stringTagged ID of the workspace this rule is enabled for.
-
workspace_name: string or nullWorkspace display name. Populated when listing; null in the enable response.
-
Example
curl https://api.anthropic.com/v1/organizations/federation_rules/$FEDERATION_RULE_ID/workspaces \
-H 'Content-Type: application/json' \
-H 'anthropic-version: 2023-06-01' \
-H "X-Api-Key: $ANTHROPIC_API_KEY" \
-d '{
"workspace_id": "workspace_id"
}'Response (200)
{
"created_at": "2024-10-30T23:58:27.427722Z",
"created_by_actor_id": "created_by_actor_id",
"federation_rule_id": "federation_rule_id",
"type": "federation_rule_workspace",
"workspace_id": "workspace_id",
"workspace_name": "workspace_name"
}List Federation Rule Workspaces
GET /v1/organizations/federation_rules/{federation_rule_id}/workspaces
Requires an OAuth access token with the org:admin scope, from ant auth login --scope org:admin or a workload identity federation rule; Admin API keys are not accepted. See Manage WIF with the Admin API.
List workspaces where this federation rule is enabled.
Returns all workspace enablements in a single response; the limit and
page parameters are accepted but have no effect, and next_page is
always null. Returns explicit per-workspace enablements only; for
rules with applies_to_all_workspaces or a legacy single
workspace_id, check those fields on the rule itself.
Path parameters
-
federation_rule_id: stringID of the federation rule.
Query parameters
-
limit: optional numberNumber of results per page.
default: 20, maximum: 100, minimum: 1
-
page: optional stringOpaque cursor from a previous response's
next_page.
Headers
-
"anthropic-beta": optional array of AnthropicBetaOptional header to specify the beta version(s) you want to use.
-
string -
"message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 43 more-
"message-batches-2024-09-24" -
"prompt-caching-2024-07-31" -
"computer-use-2024-10-22" -
"computer-use-2025-01-24" -
"pdfs-2024-09-25" -
"token-counting-2024-11-01" -
"token-efficient-tools-2025-02-19" -
"output-128k-2025-02-19" -
"files-api-2025-04-14" -
"mcp-client-2025-04-04" -
"mcp-client-2025-11-20" -
"dev-full-thinking-2025-05-14" -
"interleaved-thinking-2025-05-14" -
"code-execution-2025-05-22" -
"extended-cache-ttl-2025-04-11" -
"context-1m-2025-08-07" -
"context-management-2025-06-27" -
"model-context-window-exceeded-2025-08-26" -
"skills-2025-10-02" -
"fast-mode-2026-02-01" -
"output-300k-2026-03-24" -
"user-profiles-2026-03-24" -
"user-profiles-2026-08-18" -
"user-profiles-2026-09-04" -
"advisor-tool-2026-03-01" -
"managed-agents-2026-04-01" -
"cache-diagnosis-2026-04-07" -
"dreaming-2026-04-21" -
"thinking-token-count-2026-05-13" -
"server-side-fallback-2026-06-01" -
"server-side-fallback-2026-07-01" -
"fallback-credit-2026-06-01" -
"fallback-credit-2026-07-01" -
"agent-memory-2026-07-22" -
"mid-conversation-tool-changes-2026-07-01" -
"compact-2026-01-12" -
"computer-use-2025-11-24" -
"mcp-tunnels-2026-06-22" -
"structured-outputs-2025-11-13" -
"task-budgets-2026-03-13" -
"thinking-display-updates-2026-08-18" -
"ce-user-management-2026-07-13" -
"mid-conversation-output-config-2026-07-01" -
"thinking-binding-controls-2026-08-01" -
"mid-conversation-system-clear-at-2026-08-21" -
"compact-2026-09-04"
-
-
Returns
-
data: array of BetaFederationRuleWorkspace-
type: "federation_rule_workspace"default: federation_rule_workspace
-
created_at: stringWhen this workspace was enabled for the rule.
format: date-time
-
created_by_actor_id: string or nullTagged ID (
user_...orsvac_...) of the actor that enabled this workspace for the rule, if known. -
federation_rule_id: stringTagged ID of the federation rule.
-
workspace_id: stringTagged ID of the workspace this rule is enabled for.
-
workspace_name: string or nullWorkspace display name. Populated when listing; null in the enable response.
-
-
next_page: string or nullOpaque cursor for the next page; null when there are no more results.
Example
curl https://api.anthropic.com/v1/organizations/federation_rules/$FEDERATION_RULE_ID/workspaces \
-H 'anthropic-version: 2023-06-01' \
-H "X-Api-Key: $ANTHROPIC_API_KEY"Response (200)
{
"data": [
{
"created_at": "2024-10-30T23:58:27.427722Z",
"created_by_actor_id": "created_by_actor_id",
"federation_rule_id": "federation_rule_id",
"type": "federation_rule_workspace",
"workspace_id": "workspace_id",
"workspace_name": "workspace_name"
}
],
"next_page": "next_page"
}Remove Federation Rule Workspace
DELETE /v1/organizations/federation_rules/{federation_rule_id}/workspaces/{workspace_id}
Requires an OAuth access token with the org:admin scope, from ant auth login --scope org:admin or a workload identity federation rule; Admin API keys are not accepted. See Manage WIF with the Admin API.
Disable a federation rule for a workspace.
Idempotent; succeeds even if the enablement was already removed. OAuth
callers may only manage rules whose oauth_scope is
workspace:developer or workspace:inference; other scopes require a
Console session.
Path parameters
-
federation_rule_id: stringID of the federation rule.
-
workspace_id: stringID of the workspace to disable for.
Headers
-
"anthropic-beta": optional array of AnthropicBetaOptional header to specify the beta version(s) you want to use.
-
string -
"message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 43 more-
"message-batches-2024-09-24" -
"prompt-caching-2024-07-31" -
"computer-use-2024-10-22" -
"computer-use-2025-01-24" -
"pdfs-2024-09-25" -
"token-counting-2024-11-01" -
"token-efficient-tools-2025-02-19" -
"output-128k-2025-02-19" -
"files-api-2025-04-14" -
"mcp-client-2025-04-04" -
"mcp-client-2025-11-20" -
"dev-full-thinking-2025-05-14" -
"interleaved-thinking-2025-05-14" -
"code-execution-2025-05-22" -
"extended-cache-ttl-2025-04-11" -
"context-1m-2025-08-07" -
"context-management-2025-06-27" -
"model-context-window-exceeded-2025-08-26" -
"skills-2025-10-02" -
"fast-mode-2026-02-01" -
"output-300k-2026-03-24" -
"user-profiles-2026-03-24" -
"user-profiles-2026-08-18" -
"user-profiles-2026-09-04" -
"advisor-tool-2026-03-01" -
"managed-agents-2026-04-01" -
"cache-diagnosis-2026-04-07" -
"dreaming-2026-04-21" -
"thinking-token-count-2026-05-13" -
"server-side-fallback-2026-06-01" -
"server-side-fallback-2026-07-01" -
"fallback-credit-2026-06-01" -
"fallback-credit-2026-07-01" -
"agent-memory-2026-07-22" -
"mid-conversation-tool-changes-2026-07-01" -
"compact-2026-01-12" -
"computer-use-2025-11-24" -
"mcp-tunnels-2026-06-22" -
"structured-outputs-2025-11-13" -
"task-budgets-2026-03-13" -
"thinking-display-updates-2026-08-18" -
"ce-user-management-2026-07-13" -
"mid-conversation-output-config-2026-07-01" -
"thinking-binding-controls-2026-08-01" -
"mid-conversation-system-clear-at-2026-08-21" -
"compact-2026-09-04"
-
-
Returns
-
type: "federation_rule_workspace_deleted"default: federation_rule_workspace_deleted
-
federation_rule_id: stringTagged ID of the federation rule.
-
workspace_id: stringTagged ID of the workspace named in the delete request. Removal is idempotent.
Example
curl https://api.anthropic.com/v1/organizations/federation_rules/$FEDERATION_RULE_ID/workspaces/$WORKSPACE_ID \
-X DELETE \
-H 'anthropic-version: 2023-06-01' \
-H "X-Api-Key: $ANTHROPIC_API_KEY"Response (200)
{
"federation_rule_id": "federation_rule_id",
"type": "federation_rule_workspace_deleted",
"workspace_id": "workspace_id"
}